2

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

メイン内には、ユーザーから最初に入力された文字列を逆にするための for ループがあります。

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

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

注:大文字と小文字を区別して2つの文字列を比較する別の関数がありますが、文字列のインデックス(入力された回文)を比較するときにスペースを考慮します。関数とその for ループの唯一の違いは、最初の関数の 'strcmp' であり、2 番目の関数は大文字と小文字の区別を無視するための '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 に答える