соответствие strstr первому вхождению в c - PullRequest
1 голос
/ 30 марта 2010

Мне было интересно, как я могу сопоставить строку "Just" в str1, если str1 содержит строки в виде:

"this is Just/1.1.249.4021 a test" 
// "Just" will always be the same

Я пытаюсь сопоставить его с помощью strstr, но пока он не будет совпадать из-за /...

Любые предложения о том, как соответствовать? Спасибо

Ответы [ 3 ]

2 голосов
/ 30 марта 2010

Это работает для меня - а вы?

#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);
}
1 голос
/ 30 марта 2010

Что-то не так с тем, как вы используете 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));
0 голосов
/ 30 марта 2010

Если строка на самом деле "Just / 1.1.249.4021", она не сможет найти "просто", потому что strstr чувствительна к регистру. Если вам нужна версия без учета регистра, вы должны написать свою собственную или Google для существующей реализации.

...