gpt4 book ai didi

C 字符串用多个 '\n' 分解一个字符串

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:52 25 4
gpt4 key购买 nike

<分区>

int main(void){
char* line = "CCCCCCC\nC+\nC++";
char* line2 = "a\nb\nc";
//char* pattern = ".\\+\\+";
//int n= strlengp(line);
printf("%s\n", line);
printf("%s\n", line2);
fputs(line, stdout);

此代码正确打印:中国中建商会

C+

C++

一个

b

c

现在我的问题是,我正在研究在没有 string.h 的情况下实现的 rgrep 函数。以下是我正在处理的代码的主要部分,我不会对其进行修改。

int main(int argc, char **argv) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <PATTERN>\n", argv[0]);
return 2;
}

/* we're not going to worry about long lines */
char buf[MAXSIZE];

while (!feof(stdin) && !ferror(stdin)) {
if (!fgets(buf, sizeof(buf), stdin)) {
break;
}
if (rgrep_matches(buf, argv[1])) {
fputs(buf, stdout);
fflush(stdout);
}
}

if(ferror(stdin)) {
perror(argv[0]);
return 1;
}

return 0;
}

int rgrep_matches(char *line, char *pattern){
printf("%s", line);
return 0;
}

现在,当我在包含与上述代码“CCCCCCC\nC+\nC++”、“a\nb\nc”相同字符串的测试文件上运行上述代码时。

为什么上面的代码输出:

CCCCCC\nC+\nC++

a\nb\nc

明显忽略了'\n'。

当在页面顶部发布的不同文件中构建的测试代码打印时:

中西商会

C+

C++

一个

b

c

这是怎么回事?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com