编写一个名为addChar的C函数,将一个字符串插入另一个字符串。该函数应该接受三个参数:要插入的字符串、原始字符串和原始字符串中应该开始插入的位置。例如,调用addChar(" For all", message, 6)应该在message[5]开始的消息中插入For al字符。
时间: 2024-03-26 19:35:28 浏览: 18
好的,我来回答你的问题。
下面是一个实现addChar函数的C代码:
```
void addChar(char* insertStr, char* origStr, int startPos) {
int insertLen = strlen(insertStr);
int origLen = strlen(origStr);
int newLen = insertLen + origLen;
// 检查插入位置是否在原字符串范围内
if (startPos < 0 || startPos > origLen) {
printf("Invalid start position!");
return;
}
// 创建新字符串
char* newStr = (char*)malloc((newLen + 1) * sizeof(char));
strncpy(newStr, origStr, startPos);
strncpy(newStr + startPos, insertStr, insertLen);
strncpy(newStr + startPos + insertLen, origStr + startPos, origLen - startPos);
newStr[newLen] = '\0';
// 替换原字符串
strcpy(origStr, newStr);
// 释放内存
free(newStr);
}
```
该函数首先计算插入字符串、原始字符串和新字符串的长度,并检查插入位置是否在原始字符串范围内。然后,它创建一个新字符串,将原始字符串分成两部分,插入字符串并将其连接起来。最后,它将原始字符串替换为新字符串,并释放分配的内存。
你可以像这样调用该函数:
```
char message[100] = "Hello, world!";
addChar(" For all", message, 6);
printf("%s\n", message); // 输出:Hello, For allworld!
```
希望这个函数能帮助到你!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)