发布网友 发布时间:2022-04-25 20:43
共1个回答
热心网友 时间:2023-10-15 01:39
直接看代码:
#include<stdio.h>
#include<string.h>
void main()
{
char str[100],str_new[100],t;
char *p=str;
int at=0;
puts("输入字符串:");
gets(str);
puts("要插入的字符:");
t=getchar();/*.输入的字符被存放在键盘缓冲区中.直到按回车为止(回车字符也放在缓冲区中);其他字符会保留在键盘缓存区中,等待后续getchar调用读取*/
fflush(stdin);//刷输入新缓存区的内容
puts("插入的位置:");
scanf("%d",&at);
if(at>strlen(str))
{puts("输入长度应该小于字符串长度!");
return;
}
int j=0;
for(int i=0;str[i]!=0;i++)//新的字符串在这个for()生成
{
if(i==at-1)
str_new[j++]=t;
str_new[j++]=str[i];
}
str_new[j]='\0';
puts(str_new);
}
这里使用生成新数组的for循环较简洁,但是要新定义一个数组,有一定的系统开销,读者也可以用其它的方法。