用C语言书写代码。从键盘上输入两个字符串(长度不大于20)和整数n(0<n<=20),要求将第二个字符串插在第一个字符串的n位置开始处并输出。 示例如第一个字符串为"you are ok." 第二个字符串为"fine and " 输入的整数为8,则表示将fine插在ok前面(y前面为位置0,o前面的位置为8),输出为you are fine and ok.
时间: 2023-06-07 21:10:52 浏览: 92
好的,我明白了你的要求。以下是用C语言书写的代码实现你所描述的功能:
```
#include <stdio.h>
#include <string.h>
int main() {
char str1[21], str2[21];
int n;
printf("请输入第一个字符串(长度不大于20):");
fgets(str1, sizeof(str1), stdin);
str1[strcspn(str1, "\n")] = '\0'; // 去掉fgets函数读入的换行符
printf("请输入第二个字符串(长度不大于20):");
fgets(str2, sizeof(str2), stdin);
str2[strcspn(str2, "\n")] = '\0'; // 去掉fgets函数读入的换行符
printf("请输入整数n(0<n<=20):");
scanf("%d", &n);
if (n > strlen(str1)) {
printf("n 必须小于等于第一个字符串长度");
return 0;
}
char result[41];
strncpy(result, str1, n); // 复制前n个字符到 result 中
result[n] = '\0';
strcat(result, str2); // 将第二个字符串接到 result 后面
strcat(result, str1 + n); // 将第一个字符串中 n 位置之后的部分接到 result 后面
printf("结果为:%s\n", result);
return 0;
}
```
你可以将上面的代码复制到 Visual Studio Code 或其他 C 语言开发工具中运行,输入所需的字符串和整数 n 后,即可得到最终结果。
阅读全文