写一个函数,从一个长字符串中统计给定的字符串t出现的位置,按照位置大小排序
时间: 2023-03-28 17:00:24 浏览: 109
好的,我可以回答这个问题。以下是一个示例函数:
```c
#include <stdio.h>
#include <string.h>
void find_and_sort(char *str, char *t) {
int len_str = strlen(str);
int len_t = strlen(t);
int positions[len_str];
int count = ;
for (int i = ; i <= len_str - len_t; i++) {
if (strncmp(str + i, t, len_t) == ) {
positions[count++] = i;
}
}
// 冒泡排序
for (int i = ; i < count - 1; i++) {
for (int j = ; j < count - i - 1; j++) {
if (positions[j] > positions[j+1]) {
int temp = positions[j];
positions[j] = positions[j+1];
positions[j+1] = temp;
}
}
}
printf("出现位置:");
for (int i = ; i < count; i++) {
printf("%d ", positions[i]);
}
printf("\n");
}
int main() {
char str[] = "hello world, world is beautiful";
char t[] = "world";
find_and_sort(str, t);
return ;
}
```
这个函数会在长字符串 `str` 中查找给定字符串 `t` 的出现位置,并按照位置大小排序输出。
阅读全文