我在将一个字符串的反向分配给另一个字符串时遇到错误。
[错误] 将“char*”分配给 char[20] 时的类型不兼容
这是我的代码
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char str[20],str2[20];
int length;
cout<<"Enter the string\n";
cin>>str;
length=strlen(str);
str2=strrev(str);
if(str==str2)
{
cout<<"Palindrome";
}
else{
cout<<"Not a palindrome";
}
return 1;
}
关于我做错了什么的任何解释都会非常有帮助。干杯
正如其他人所推荐的那样,一个简单的解决方案是使用std::string
而不是char [20]
,然后您可以调用方法reverse()
来完成这项工作。
这是我的简单代码:
#include <iostream>
#include <string>
#include <algorithm>
int main()
{
std::string str, str2;
std::cout << " Please Enter The String : \n";
std::cin >> str;
str2 = str;
reverse(str.begin(), str.end());
if( str == str2 )
std::cout << "Palindrome";
else
std::cout << "Not a palindrome";
return 0;
}
我已经测试并验证了代码是否有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句