2014-06-06 59 views
-5

這是檢查字符串是否是迴文的代碼。即使字符串是相同的,C++ strcmp也會返回0。

#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,輸出應該是迴文。但它沒有工作說明什麼是錯誤。

+3

請看看在STRCMP的文檔。成功時返回零。 – Happington

+0

[stcrcmp](http://linux.die.net/man/3/strcmp) – jsantander

+0

'如果(a == b)'不符合您的想法,'i> = 0,j <= len'都不是。 – Jarod42

回答

3

的功能的strcmp作爲串指向S1大於,等於,或小於字符串s2指向相應地返回一個整數大於,等於,或小於零, 。

所以等於字符串將返回0。

相關問題