/*
从标准输入一行一行的读取文本,如果两行或更多的行相邻的文本内容相同,那么就打印出其中一行,其余的行不打印,
假设文件中的文本行长度上不超过128个字符(127个字符加上终结文本行的换行符).
tips:使用gets函数读取输入行,strcpy函数复制,strcmp函数用来对字符串进行比较,如果相等,返回0,不等,返回非0
*/
- 要写strcpy()函数和strcmp()函数的头文件 #include <string.h>
- 每用gets()函数读取到一行文本,就存储到一个字符数组中
- 比较两个字符数组,如果相同,则输出其中的一个
- 如果再次读取的文本和前两行相同,则不输出,这时,需要一个标签flag,来判断这行是否需要输出
- 代码
-
/* 从标准输入一行一行的读取文本,如果两行或更多的行相邻的文本内容相同,那么就打印出其中一行,其余的行不打印, 假设文件中的文本行长度上不超过128个字符(127个字符加上终结文本行的换行符). tips:使用gets函数读取输入行,strcpy函数复制,strcmp函数用来对字符串进行比较,如果相等,返回0,不等,返回非0 */ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main(void) { char a[128] = { 0 }, temp[128] = { 0 }; int flag=0; while (1) { gets(temp); if (strcmp(a, temp) == 0) { if (flag == 0) { printf("输出行:%s\n", temp); flag = 1; } } else { strcpy(a, temp); flag = 0; } } return 0; }
-
程序中的输出,直接用printf()函数输出到屏幕,也可以再用一个二维数组存储,最后一起输出.
-
还可以用fprintf()函数直接输出到文件中.
-
其他输出方法.
-