如何检查一个字符串是否包含C中的几个关键字之一

问题描述 投票:0回答:2

我对 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() 期望两者都能起作用,但什么也没做

c string input substring
2个回答
0
投票

添加 #include 如果您还没有的话,请在顶部。

然后也在顶部附近定义字符串: char str2[] = "好"; char str3[] = "累了";

然后定义布尔值:

好结果 = strstr(str, str2); 累结果 = strstr(str, str3);

然后进行测试:

if (goodresult) {
    printf("GOOD");
}
if (tiredresult){
    printf("TIRED);
}

0
投票

您需要

#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;
}
© www.soinside.com 2019 - 2024. All rights reserved.