c ++ strcmp返回0,即使字符串相同。解释原因?

时间:2014-06-06 17:51:02

标签: c++ string

这是检查字符串是否为回文的代码。

#include<iostream>
using namespace std;
int main()
{
   char a[20]="",b[20]="";
   int len,c;
   cout<<"Enter the string";
   cin>>a;
   len=strlen(a);
   cout<<len<<endl;

   for(int i=len-1,j=0;i>=0,j<=len;i--,j++)
   {
      b[i]=a[j];
   }
   cout<<a<<endl;
   cout<<b<<endl;
   cout<<strlen(b);
   c=strcmp(a,b);
   cout<<c<<endl;

   if(a==b)
   {
      cout<<"palindrome";
   }
}

在上面的代码中,如果输入是sas,则输出应该是回文。但它不起作用请说出错是什么。

1 个答案:

答案 0 :(得分:3)

  

strcmp函数返回一个大于,等于或小于零的整数,   因此,s1指向的字符串大于,等于或小于s2指向的字符串。

所以相等的字符串将返回0.