我对 C 还很陌生,但我对 Python 有经验, 我正在尝试检查输入字符串中是否包含某个单词 例如情绪检查器
char str[20];
printf("How are you feeling right now");
scanf("%c", str);
这就是我接收输入的方式。 我希望能够判断字符串是否包含“好”或“累”字样 并相应地返回输出
例如在Python中
If "good" in str:
print("I'm glad to hear that")
elif "tired" in str:
print("Don't worry, today will end soon and you'll get to bed and sleep well.")
我成功检查了单个字符,但没有检查整个单词\子字符串。
我似乎无法找到一种方法在 C 中做到这一点 预先感谢您的帮助
我尝试使用 strstr(word, string) 函数,但没有意识到语法是如何工作的 我还尝试使用 switch() 和 case() 期望两者都能起作用,但什么也没做
添加 #include
然后也在顶部附近定义字符串: char str2[] = "好"; char str3[] = "累了";
然后定义布尔值:
好结果 = strstr(str, str2); 累结果 = strstr(str, str3);
然后进行测试:
if (goodresult) {
printf("GOOD");
}
if (tiredresult){
printf("TIRED);
}
您需要
#include <string.h>
才能像这样使用 strstr()
:
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("How are you feeling right now? ");
fgets(str, sizeof(str), stdin);
if (strstr(str, "good") != NULL)
printf("I'm glad to hear that!\n");
else if (strstr(str, "tired") != NULL)
printf("Take some rest!\n");
else
printf("Thank you for sharing.\n");
return 0;
}