是否有等效于C的python中的“ in”关键字

时间:2019-06-27 05:14:04

标签: c python-3.x string substring

我正在尝试检查用户输入的字符串中是否包含某个关键字。

这就是我在python中要做的事情。

keyword = "something"
user_input = input("Enter a something: ")
if keyword in user_input: # I don't know how to do this part
    print("You entered something")
else:
    print("You didn't enter something")

我该如何在C语言中做类似的事情?

2 个答案:

答案 0 :(得分:5)

不完全相同,但是我能想到的最接近的是strstr()

#include <string.h>
char *strstr(const char *haystack, const char *needle);

strstr()函数在字符串needle中找到子字符串haystack的第一个匹配项。

此函数返回一个指向子字符串开头的指针;如果找不到子字符串,则返回NULL

答案 1 :(得分:5)

您可以使用strstr()在字符串中搜索子字符串。它不像Python的in运算符那样通用(例如,strstr不能用于检查给定值是否存储在数组中),但是它将解决您提出的问题。 / p>

例如(未试用):

const char *keyword = "something";
const char *user_input = input("Enter a something: "); // I'll leave this to you to implement
if (NULL != strstr(user_input, keyword)) {
    printf("You entered something\n");
} else {
    printf("You didn't enter something\n");
}