用c语言完成这个任务 给定函数 frequency 的功能是:求字符串(子串)在字符串(一个段落)中出现的次数。 函数接口定义: int frequency ( char* paragraph, char* from, char* to ); 其中 paragraph指向的空间中存放着一个字符串,from与to分别指向子串的第一个字符和最后一个字符。函数返回值为指定的子串在字符串中出现的次数。
时间: 2023-06-11 08:08:08 浏览: 257
以下是用 C 语言完成该任务的代码:
```c
#include <stdio.h>
int frequency(char *paragraph, char *from, char *to) {
int count = 0, len = 0;
char *p = paragraph;
while (*p != '\0') {
if (*p == *from) {
len = 1;
while (*(from + len) != '\0' && *(p + len) != '\0' && *(from + len) == *(p + len)) {
len++;
}
if (*(from + len) == '\0' && (*(p + len) == *to || *to == '\0')) {
count++;
}
}
p++;
}
return count;
}
int main() {
char paragraph[] = "Hello, world! This is a test paragraph to test the frequency function.";
char from[] = "test";
char to[] = "";
printf("The frequency of \"%s\" is %d.\n", from, frequency(paragraph, from, to));
return 0;
}
```
在该代码中,我们定义了 `frequency` 函数,接收三个参数 `paragraph`、`from` 和 `to`,分别表示段落、子串的起始字符和终止字符(不包括该字符)。函数的返回值是指定的子串在字符串中出现的次数。
在函数内部,我们使用指针 `p` 遍历整个段落,如果 `p` 指向的字符与子串的首字符相同,则从该位置开始,使用另一个指针 `from` 依次比较子串中的字符与段落中的字符是否相同,直到子串中的字符全部比较完毕或者发现有不同的字符。如果子串中的字符全部比较完毕,则说明该子串在段落中出现了一次,计数器 `count` 加一。
最后,我们在 `main` 函数中使用该函数,并打印出结果。
阅读全文