gpt4 book ai didi

将数组中的值与字符串进行比较

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:18 25 4
gpt4 key购买 nike

我有一个如下所示的数组:

字符测试[100]

然后我要比较这个数组有没有这个特定的句子

if (test == "yup this is the sentence") {
// do stuff
}

这是正确的吗?有更好的方法吗?谢谢。

最佳答案

你不能在 C 中这样做。你在这里所做的是检查身份相等性(id est 如果你的两个指针指向相同的内存区域)。

你可以做的是使用 libc strstr 来做你想做的事:

#include <string.h>

if (strstr(test, "yup this is the sentence") != NULL)
{
// do stuff if test contains the sentence
}

在终端中键入 man 3 strstr 以获取有关该函数及其所有行为的更多信息。

如果你想了解函数的行为,这里用纯 C 重新编码,只有一个循环:

char        *strstr(const char *s1, const char *s2)
{
int begin;
int current;

begin = 0;
current = 0;

if (!*s2)
return ((char *)s1);

while (s1[begin])
{
if (s1[begin + current] == s2[current])
current++;
else
{
current = 0;
begin++;
}
if (!s2[current])
return ((char *)s1 + begin);
}
return (0);
}

它是学校项目的一部分。完整项目包含所有 C 库基本函数。

您可以在此处查看其他一些字符串操作函数: https://github.com/kube/libft/tree/master/src/strings

关于将数组中的值与字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33977214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com