conquerorbh Ответов: 2

C++ C++ помогите мне пожалуйста


i try to write   code but  i have a problem for  this code.
i want to write reverse is same ( for example : i will write  "madam" reverse is same "madam".

i want to do  STR.. code

What I have tried:

#include<stdio.h>	
#include<string.h>

 	int main()

{
	char string [80];


	printf("enter a string : ");
	gets(string);
	
	
	strrev(string);
	printf("reverse: %s ",string);  
	
	
	
	
   
	return 0;
}

2 Ответов

Рейтинг:
9

CPallini

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main ()
{
  string s;

  cout << "enter a string " << endl;
  cin >> s;

  string r = s;
  reverse(r.begin(),r.end());

  if ( r == s)
    cout << "the string is palindrome" << endl;
  else
    cout << "the string is not palindrome" << endl;
}


Рейтинг:
19

Jochen Arndt

Вы должны создать копию входной строки, перевернуть ее и сравнить строки:

char *rev = strdup(string);
strrev(rev);
int compare = strcmp(rev, str);
if (0 == compare)
    printf("'%s' is a palindrome\n", string);
// ...
free(rev);


Jochen Arndt

Это стандартная функция библиотеки C, такая как strrev и strcmp.
Видишь http://en.cppreference.com/w/c/experimental/dynamic/strdup