strstr匹配c中的第一个匹配项

strstr匹配c中的第一个匹配项,c,strstr,C,Strstr,我想知道如果str1包含以下字符串,如何匹配str1中的字符串“Just”: "this is Just/1.1.249.4021 a test" // "Just" will always be the same 我正试图用strstrstr来匹配它,但到目前为止,由于/… 对如何匹配它有什么建议吗?谢谢这对我有用-你呢 #include <string.h> #include <stdio.h> int main(void) { char haystack

我想知道如果
str1
包含以下字符串,如何匹配
str1
中的字符串
“Just”

"this is Just/1.1.249.4021 a test" 
// "Just" will always be the same
我正试图用strstrstr来匹配它,但到目前为止,由于
/…


对如何匹配它有什么建议吗?谢谢

这对我有用-你呢

#include <string.h>
#include <stdio.h>
int main(void)
{
    char haystack[] = "this is just\2323 a test";
    char needle[] = "just";
    char *loc = strstr(haystack, needle);
    if (loc == 0)
        printf("Did not find <<%s>> in <<%s>>\n", needle, haystack);
    else
        printf("Found <<%s>> in <<%s> at <<%s>>\n", needle, haystack, loc);
    return(0);
}
#包括
#包括
内部主(空)
{
char haystack[]=“这只是一个测试”;
炭针[]=“刚刚”;
char*loc=strstr(干草堆、针);
如果(loc==0)
printf(“在针、草垛中找不到”);
其他的

printf(“在中发现,您使用strstr()的方式一定有问题) 下面的代码工作得很好

const char *s = "this is just\2323 a test";
char *p = strstr(s, "just");
if(p)
    printf("Found 'just' at index %d\n", (int)(p - s));

如果字符串实际上是“Just/1.1.249.4021”,那么它将无法找到“Just”",因为STRSTRSTR是区分大小写的。如果您需要不区分大小写的版本,您必须自己编写或为现有的实现编写。

这实际上是编译的吗?这里似乎有一个无效的字符串文本-
\2323
不是有效的转义码。@Evgeny:\2323是有效的八进制转义码\232,后跟digit 3.抱歉,字符串应该是:Just/1.1.249.4021那么好了-谢谢您的解释。您说的“Just/1.1.249.4021”是什么意思这是针还是海草?你在寻找一个不区分大小写的字符串搜索吗?如果是这样,你需要一个非标准函数。对不起,字符串应该是:/1.1.2494021. C++标准说字符串字是“conchar数组”的类型。,因此建议将它们声明为const char*@rep_movsd:yes,但我没有声明任何字符串文字。我声明了两个带有方便的初始值设定项的变量数组。当然,我可以将它们设置为const;完全没有义务这样做,如果我愿意,我可以(小心地)修改字符串。