求教C语言大神! gets()输入一个字符串后,我想接着输入一个字符,这时需要额外加getchar来接受回车符吗

发布网友 发布时间: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循环较简洁,但是要新定义一个数组,有一定的系统开销,读者也可以用其它的方法。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com