写一个c语言代码,在一行文本中查找给定的单词。一行文本有字母和分 隔符组成,分隔符包括若干空格、逗号、句号和换行符。一个单词有若千个连续字母组成。其中,函数intfind_ word(char t,char wIl,int cIJ)的功能:在t串中中查找单词 w,如果找到则把单词w 在t串出现的位置存入c中,最后返回单词 w 在t中出现的次数。 例如:t串:Iwill pass the examination in the holiday. w串:the 输出结果: Times is 2 Position is 12, 31 w串:th 输出结果:Not found!
时间: 2024-02-22 21:54:56 浏览: 127
```
#include <stdio.h>
#include <string.h>
int find_word(char t[], char w[], int c[]) {
int i, j, k, count = 0;
int len_t = strlen(t);
int len_w = strlen(w);
for (i = 0; i < len_t; i++) {
if (t[i] == w[0]) {
for (j = i + 1, k = 1; k < len_w && j < len_t; j++, k++) {
if (t[j] != w[k]) {
break;
}
}
if (k == len_w) {
c[count] = i;
count++;
}
}
}
return count;
}
int main() {
char t[] = "I will pass the examination in the holiday.";
char w[] = "the";
int c[100];
int count = find_word(t, w, c);
if (count == 0) {
printf("Not found!\n");
} else {
printf("Times is %d\n", count);
printf("Position is ");
for (int i = 0; i < count; i++) {
printf("%d", c[i]);
if (i != count - 1) {
printf(", ");
}
}
printf("\n");
}
return 0;
}
```
解析:使用双重循环遍历字符串t,外层循环按顺序遍历t中的每个字符,内层循环从外层循环的下一个字符开始,依次与w中的字符比较,如果不匹配就退出内层循环,如果匹配到w的最后一个字符就说明找到了一个单词,记录该单词在t中的位置,然后继续外层循环。最后返回找到的单词数目,以及每个单词在t中的位置。
阅读全文