写一个函数,从一个长字符串中统计给定的字符串t出现的位置,按照位置大小排序
时间: 2023-03-28 13:00:36 浏览: 78
好的,这是一个关于字符串操作的问题。以下是一个简单的函数实现:
```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 pos[len_str], cnt = ;
for (int i = ; i <= len_str - len_t; i++) {
if (strncmp(str + i, t, len_t) == ) {
pos[cnt++] = i;
}
}
for (int i = ; i < cnt; i++) {
for (int j = i + 1; j < cnt; j++) {
if (pos[i] > pos[j]) {
int tmp = pos[i];
pos[i] = pos[j];
pos[j] = tmp;
}
}
}
for (int i = ; i < cnt; i++) {
printf("%d ", pos[i]);
}
}
int main() {
char str[] = "hello world, world is beautiful!";
char t[] = "world";
find_and_sort(str, t);
return ;
}
```
这个函数的思路是先遍历整个字符串,找到所有出现 t 的位置,然后使用冒泡排序将这些位置按照从小到大的顺序排列,最后输出这些位置。
阅读全文