检查字符串中的特定字符

时间:2016-02-13 21:12:34

标签: c string parsing

我有一个看起来像这样的字符串:

char *string = "This is a\r string\r\nTTTT";

我想检查一个字符串(如上面的\r\r\n字符,但是,只使用strcmp不起作用。例如:

if (strcmp(string, "\r\n") == 0) {     
    if (strcmp(string, "\n) == 0) {
        printf("The string contains both a newline, and "\r\n" characters");
    }
}

memcmpstrncmp似乎也不起作用:

if (memcmp(string, "\r\n", 2) == 0) {
    if (memcmp(string, "\n", 1) == 0) {
        printf("The string contains both a newline, and "\r\n" characters");
    }
}

我也试过这个(这有点有用,但后来没有)。

int i;
for (i = 0; i < strlen(string); i++) {
    if (string[i] == '\n') {
        if (strcmp(string, "\r\n") == 0) {
            printf("The string contains both a newline, and "\r\n" characters");
        }
    }
}

我试过的持续方法确实找到换行符,但找不到“\ r \ n”字符。而上面的其他两个根本不起作用,任何想法?

1 个答案:

答案 0 :(得分:2)

#include <stdio.h>
#include <string.h>

int main(void) {
    char * someString = "This is a\r string\r\nTTTT";
    if(strstr(someString, "\r\n") != NULL) {
        puts("We hit \\r\\n");
    }

    if(strstr(someString, "\n") != NULL) {
        puts("We hit \\n");
    }

    return 0;
}