2

有没有办法在比较两个字符串时删除空格。分配是创建一个不区分大小写并且必须忽略空格的回文。到目前为止我有

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;
}

在 main 里面我有这个 for 循环来反转用户输入的第一个字符串。

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

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

注意:我有另一个函数可以比较两个字符串是否区分大小写,但在比较字符串的索引(即输入的回文)时会考虑空格。我在函数及其 for 循环中的唯一区别是第一个函数的“strcmp”,第二个是“strcasecmp”以忽略区分大小写。

4

1 回答 1

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;}

于 2013-03-08T18:03:55.200 回答