利用c++编写代码来实现一下内容:首先老师有一个匹配模版,比如是“aa[123]bb”这一个字符串,同学们交的各种作业字符串如aa1bb、aa2bb、aa3bb都算是正确匹配看,而aacbb就是错误的字符串。 (即待查字符串对应于模版方括号内的部分,应该为方括号内字符串的一个子字符)。输入的第一行为一个整数n,表示有多少个学生的作业,即有多少行需要检查的字符串。(1<=n<=50) 中间为n行字符串,代表着n个学生们写的作业。每个字符串长度小于50。 最后一行为1行字符串,代表着老师给的匹配模板。 输出格式: 输出合格的字符串的行号和该字符串。(中间以空格隔开)
时间: 2023-05-12 15:04:20 浏览: 43
以下是利用 C 编写的代码,可以实现上述内容:
```
#include <stdio.h>
#include <string.h>
int main() {
char pattern[51], str[51];
int n, i, j, len, match, line = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
scanf("%s", str);
len = strlen(str);
match = 0;
for (j = 0; j < len; j++) {
if (str[j] == pattern[2] && j > 0 && str[j-1] == pattern[1] && j < len-1 && str[j+1] == pattern[3]) {
match = 1;
break;
}
}
if (match) {
printf("%d %s\n", line, str);
}
line++;
}
return 0;
}
```
在这个程序中,我们首先读入匹配模板,然后读入需要检查的字符串数量和每个字符串。对于每个字符串,我们遍历其中的每个字符,如果发现匹配模板中方括号内的字符出现在字符串中,并且它前后的字符分别是匹配模板中的前后字符,那么就说明这个字符串是合格的。最后,我们输出合格的字符串的行号和该字符串。