请编程:编写一个西数insertstring:將一个字符串 (sourceStringPtr 形参指定)插入到另一个宇符串(destinationString 形参保存)中给定的位置(position 形参指定)。 insertString函数的原型如下: void insertString(char destinationString[I,char * sourceStringPtr, int position); UdestinationString是保存被插人的宇符串数组 //sourceStringPtr是指向要插入的宇符串指针 11 position插入的位置 提示:程序需要添加一定数量的注释,程序的输入输出要有提示。
时间: 2024-01-15 22:05:38 浏览: 75
编程实现先从标准输入中读取字符串,然后将字符串存到文件file1中,最后再将文件file1中的内容读取另存到文件file2中等功能。
以下是使用C语言编写的insertString函数代码:
```c
#include <stdio.h>
#include <string.h>
void insertString(char destinationString[], char *sourceStringPtr, int position);
int main(void)
{
char str[100] = "Hello, world!";
char insertStr[20] = "beautiful ";
int position = 7;
printf("Before insert: %s\n", str);
insertString(str, insertStr, position);
printf("After insert: %s\n", str);
return 0;
}
void insertString(char destinationString[], char *sourceStringPtr, int position)
{
int destLength = strlen(destinationString);
int sourceLength = strlen(sourceStringPtr);
int i;
/* 移动destinationString中的字符,腾出插入位置 */
for (i = destLength; i >= position; i--)
{
destinationString[i + sourceLength] = destinationString[i];
}
/* 插入sourceStringPtr中的字符 */
for (i = 0; i < sourceLength; i++)
{
destinationString[position + i] = sourceStringPtr[i];
}
}
```
程序中的insertString函数接受三个参数:目标字符串destinationString、源字符串sourceStringPtr和插入位置position。它首先计算出目标字符串和源字符串的长度,然后使用for循环将目标字符串中插入位置及其后面的字符向后移动sourceLength个位置,以便为源字符串中的字符腾出空间。接下来,使用另一个for循环将源字符串中的字符插入到目标字符串中的插入位置。最后,函数将修改后的目标字符串作为输出。
在程序运行时,主函数中定义了一个目标字符串、一个源字符串和一个插入位置,并将它们作为参数传递给insertString函数。程序输出了插入前和插入后的目标字符串,以验证插入操作是否成功。
阅读全文