char *p = " woohoo";
int condition = /* some calculation applied to p */
/* to look for all 0x20/blanks/spaces only */
if (condition)
{
}
else
{
printf("not ");
}
printf("all spaces\n");
2 に答える
8
一発ギャグ:
int condition = strspn(p, " ") == strlen(p);
もう少し最適化:
int condition = p[strspn(p, " ")] == '\0';
于 2010-07-27T13:39:26.417 に答える
1
これをすばやく行う方法が必要な場合は、独自の関数を作成することをお勧めします (' ' 文字のみを検索すると仮定します)。
int yourOwnFunction(char *str, char c) {
while(*str != '\0' && *str != c) {
str++;
}
return *str == '\0';
}
だからあなたはただテストする必要があります
if(yourOwnFunction(p,' ')) {
...
} else {
...
}
何か誤解していたら訂正してください:)
ところで、私はそれをテストしませんでしたが、これは最悪の場合、他の提案された方法と同じくらい速くなるはずです. ワンライナーのストレンジャーの(エレガントな)ソリューションが必要な場合は、行く方法です!
于 2010-07-27T16:14:26.757 に答える