匹配第一次出現我不知道我怎麼會在str1
字符串匹配"Just"
如果str1
包含字符串爲:的strstr在C
"this is Just/1.1.249.4021 a test"
// "Just" will always be the same
我想它使用strstr
但到目前爲止,贏得了」相匹配t因爲/...
有關如何匹配它的任何建議?謝謝
匹配第一次出現我不知道我怎麼會在str1
字符串匹配"Just"
如果str1
包含字符串爲:的strstr在C
"this is Just/1.1.249.4021 a test"
// "Just" will always be the same
我想它使用strstr
但到目前爲止,贏得了」相匹配t因爲/...
有關如何匹配它的任何建議?謝謝
這適用於我 - 你呢?
#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);
}
對不起,字符串應該是:Just/1.1.249.4021 – David78 2010-03-30 03:51:34
C++標準說字符串文字的類型是「const char數組」,因此建議將它們聲明爲const char * – 2010-03-30 03:55:33
@rep_movsd:yes,但是我沒有聲明任何字符串文字。我使用方便的初始化器來聲明兩個變量數組。當然,我可以讓它們成爲const;絕對沒有義務這樣做,如果我願意,我可以修改字符串(仔細地)。 – 2010-03-30 04:02:58
一定出事了你如何使用的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));
如果字符串實際上是「剛/ 1.1.249.4021」,那麼它會未能找到「正義」,因爲strstr
區分大小寫。如果您需要不區分大小寫的版本,則必須編寫您自己的或現有實現的Google。
這實際上編譯?看起來你有一個無效的字符串文字 - '\ 2323'不是有效的轉義碼AFAIK。 – EMP 2010-03-30 03:40:04
@Evgeny:\ 2323是一個有效的八進制轉義\ 232後面跟着數字3. – 2010-03-30 03:44:03
對不起,字符串應該是:Just/1.1.249.4021 – David78 2010-03-30 03:48:51