前几天我在CodeReview上发布了一篇帖子。其中一个回答我的问题的人建议我不要使用strcasecmp(),因为“该函数是非标准的[而且]这会使[我的]代码不可移植。” 这是我如何使用它:
int playGame()
{
char scanned[3];
printf("Do you wish to play tick-tack-toe?\n");
scanf("%s", scanned);
if(strcasecmp(scanned,"yes")==0)
startGame();
else
{
if (strcasecmp(scanned,"no")==0 || strcasecmp(scanned,"nah")==0 || strcasecmp(scanned,"naw")==0)
{
printf("That's too bad!/nThis program will now end.");
return 1;
}
printf("Not valid input!/nThis program will now end.");
return 1;
}
return 0;
}
有人能更深入地解释一下strcasecmp()为什么有这些限制吗?
man 3 strcasecmp
:"符合4.4BSD、POSIX.1-2001标准。" - David C. Rankin