Die for-Schleife kehrt die ursprüngliche Zeichenfolge um und speichert sie in 'temp.'Temp wird korrekt gedruckt. Danach werden s und temp verglichen, aber das Ergebnis zeigt immer NO an. :(Wie kann ich C-Style Strings vergleichen?
#include<cstring>
#include <iostream>
using namespace std;
int main()
{
char s[100], temp[100];
cin >> s;
cout << strlen(s);
for(int i=0;i<strlen(s);i++)
{
temp[i]=s[strlen(s)-i];
}
cout << "temp is" << temp;
if(temp==s)
{
cout << "YES";
}
else
{
cout << "NO";
}
return 0;
}
Sie beenden nie die Zeichenfolge in 'temp' richtig, was zu * undefiniertem Verhalten führt *. –
Und wenn Du programmierst in C++, benutze ['std :: string'] (http://en.cppreference.com/w/cpp/string/basic_string) und [' std :: reverse'] (http: // en .cppreference.com/w/cpp/algorithm/reverse) statt. –
'std :: string s; cin >> s; if (s == std :: string (s.rbegin(), s.rend()) cout << "JA"; sonst cout << "NEIN"; 'Das ist Ihr gesamtes Programm mit C++. – PaulMcKenzie