/**
*如果文本中有两行或更多行相邻的文本内容相同
*打印其中一行,其他的行不打印
*/
#include
#include
#include
#define MAX_LEN 128
#define END "Finished!"
void read_line(char *p);
void printf_line(char *p);
int main(void){
int n_line=0; //记录输入多少行
int same=0; //标记是否相同
int previous_same=0; //标记将要结束相同的行
char str[MAX_LEN],previous_str[MAX_LEN];
printf("输入字符串,当输入\"Finished!\"时停止输入\n");
for(;;){
read_line(str);
/**
*是否结束操作
*/
if((strcmp(str,END))==0)
break;
/**
*对相邻的字符串进行比较
*/
if((strcmp(previous_str,str))==0){
if(same>0)
continue;
same++;
}else{
/**
*打印相邻且相同的字符串
*/
if(same>0){
printf("结果为:\n");
puts(previous_str);
}
same=0;
}
strcpy(previous_str,str);
n_line++;
}
/**
*测试程序是否到达文件结尾
*/
printf("edit\n");
return 0;
}
void read_line(char *p){
char *q=p;
char ch;
while((ch=getchar())!='\n'){
*q++=ch;
}
*q='\0';
}
void printf_line(char *p){
char *q=p;
while(*q!='\0'){
putchar(*q++);
}
printf("\n");
}