2013-03-08 66 views
2

有没有办法在比较两个字符串时删除空格。该任务创建一个不区分大小写的回文,并且必须忽略空格。到目前为止,我有C程序 - 回文功能 - 几乎完全完成一个小问题

void cmpNoCase(char str1[], char str2[]){ 
    if(strcasecmp(str1, str2)==0){ 
     printf ("%s is a palindrome.\n", str2); 
    } else { ("%s is NOT a palindrome.\n", str2); 
} 
return; 
} 

和内部主要我有这样的for循环扭转从用户首先输入字符串。

for (i=0, j= strlen(input2)-1; i < j; i++, j--){ 

    index=input2[i]; 
    input2[i]=input2[j]; 
    input2[j]=index; 
} 

注:我有两个串区分大小写比较但比较字符串的索引(其为输入的回文)当需要空间考虑另一功能。我在函数和循环中唯一的区别是第一个函数的'strcmp',第二个'strcasecmp'忽略大小写。

+0

这是关于我称为input2的第二个输入的字符串。 – user2142053 2013-03-08 17:22:05

+0

试图了解你的问题... 如果input1 =“A b c d”和input2 =“dcba”,那么他们必须根据您的要求声明为回文? – Vikram 2013-03-08 17:23:48

回答

0

你可以尝试编写自己的比较函数。像while(i<strlen(yourstr){// your logic for comparing the string character by character}更具体地while(i<strlen(yourstr)){char a=yourstr[i]; if(a=' ') {continue;}; // rest of your comparison code} 否则你可以这样做:while((a=yourstring[i])!='\n'){i++; if(a=' ') {continue;}