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;完全没有义务这样做,如果我愿意,我可以(小心地)修改字符串。