我有一个看起来像这样的字符串:
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");
}
}
memcmp
和strncmp
似乎也不起作用:
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”字符。而上面的其他两个根本不起作用,任何想法?
答案 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;
}