【发布时间】:2017-10-21 18:57:48
【问题描述】:
我正在尝试编写一个无限接收输入的程序,每当输入序列与给定模式匹配时,它应该打印已找到匹配项并继续搜索我设法编写的其他模式的出现
#include<stdio.h>
#include<string.h>
int main(){
char ch;
char pattern[4]="1234";
int i=0;
while(1){
scanf(" %c",&ch);
if(ch==pattern[i]){
i+=1;
} else {
i = 0;
}
if (i == 4) {
printf("match found!\n");
i = 0;
}
//printf("%c",ch);
}
return 0;
}
问题是这段代码不能处理像 11234 这样的重复情况。
我的其他方法使用缓冲,有一些错误
#include<stdio.h>
#include<string.h>
int main(){
char ch;
char pattern[4]="1234";
char buf[4] = "";
int i=0;
while(1){
scanf(" %c",&ch);
buf[i%4]=ch;
i++;
if(strcmp(pattern,buf)==0){
printf("Match found");
}
}
return 0;
}
帮我解决问题
【问题讨论】:
标签: c pattern-matching