Я хочу знать, почему strcasecmp() возвращает 0 в первый раз, когда я использую его, но не второй.strcasecmp не возвращается 0
В этом примере я специально вводю «привет мир» в стандартный ввод. Вместо печати 0 0 это печать 0 10. У меня есть следующий код.
#include "stdio.h"
#include "string.h"
int main(void) {
char input[1000];
char *a;
fgets(input, 1000, stdin);
a = strtok(input, " ");
printf("%d\n",strcasecmp(a,"hello")); //returns 0
a = strtok(NULL, " ");
printf("%d\n",strcasecmp(a,"world")); //returns 10
return 0;
}
Что я делаю неправильно?
Возможно 'a' будет иметь символ новой строки. Отладчик может подтвердить это –
@EdHeal. Теперь я чувствую себя глупо. Большое спасибо! –
Имейте в виду, что в стандарте C не существует функции, называемой 'strcasecmp()'. Для вашего тегирования необходимо указать это (например, linux). – Peter