用c语言编写一个函数insertChar,完成如下功能:给定某个字符ch,在字符串s中所有的ch字符后面插入*字符,并返回该新字符串。
时间: 2024-02-13 21:07:24 浏览: 32
可以使用以下代码实现:
```c
#include <stdio.h>
#include <string.h>
char* insertChar(char* s, char ch) {
int len = strlen(s);
int count = 0;
for (int i = 0; i < len; i++) {
if (s[i] == ch) {
count++;
}
}
int newLen = len + count;
char* newStr = (char*) malloc(sizeof(char) * (newLen + 1));
int j = 0;
for (int i = 0; i < len; i++) {
newStr[j++] = s[i];
if (s[i] == ch) {
newStr[j++] = '*';
}
}
newStr[j] = '\0';
return newStr;
}
int main() {
char s[] = "hello world";
char* newStr = insertChar(s, 'l');
printf("%s\n", newStr);
free(newStr);
return 0;
}
```
首先,我们需要计算在字符串s中字符ch的出现次数,以此来确定新字符串的长度。然后,我们可以使用一个循环来遍历原字符串,将每个字符复制到新字符串中,并在遇到字符ch时插入一个*字符。最后,我们需要在新字符串的末尾添加一个空字符来表示字符串的结束。注意,在函数中我们使用了动态内存分配来分配新字符串的内存,因此在使用完毕后需要手动释放内存。