Я пытаюсь запустить следующий код, но во время выполнения код не переходит в условие if.Почему код не входит в условие if во время выполнения?Я пометил условие проблемы.
Запуск этой программы в Windows 10. Модель потока: posix gcc версии 5.1.0 (tdm64-1)
Я попытался использовать троичный оператор и оператор ifоператор с другой строкой, и strchr отлично работает в этом случае.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main() {
static char str[] = "hello world";
static char inputTime[] = "12:05:10PM";
char *result = strchr(str, 'w');
long int tempNum = 0;
char *token, tempStr[10], delimit[] = ":";
if (strchr(str, 'w'))
printf("\nFound w");
else
printf("\nDid not find w");
(strchr(inputTime, 'P')) ? printf("\nTrue") : printf("\nFalse");
token = strtok(inputTime, delimit);
if (strchr(inputTime, 'P')) {
printf("Found PM\n");
tempNum = strtol(token, NULL, 10);
if (tempNum != 12)
tempNum += 12;
sprintf(tempStr, "%lu", tempNum);
}
printf("\ntempStr: %s", tempStr);
}
Приведенный выше код дает мне такой вывод: C: \ Users \ XX \ Documents \ Tests \ c-программирования> a.exe
Найдено w
True
tempStr: σ @