C语言 在字符串的某个位置插入一个字符 在线等 挺急的
#include <string.h>
void Insert(char a[],char num,int a_i);
void main()
{
int a_i;
char a[50],num;
printf("请输入一个字符串:");
gets(a);
printf("请输入您想插入的一个字符:");
num=getchar();
getchar();
printf("请输入您想插入的位置:");
a_i=getchar();
Insert(a,num,a_i);
printf("插入后的字符串为:%s\n",a);
}
/*函数功能:在字符串的某个位置插入一个字符*/
void Insert(char a[],char num,int a_i)
{
int i;
if((size_t)a_i >= strlen(a))
{
printf("您输入的位置超出字符串长度了!");
}
else
{
for(i=strlen(a);i >= a_i;i--)
{
a[i+1]=a[i];
}
a[i]=num;
}
}
请问为什么无法插入字符,无论输入什么位置,都会说超出字符串长度? 展开
#include <stdio.h>
#include <string.h>
int Insert(char a[],char num,int a_i);
void main()
{
int a_i;
char a[50],num;
printf("请输入一个字符串:");
gets(a);
printf("请输入您想插入的一个字符:");
num=getchar();
getchar();
printf("请输入您想插入的位置:");
fflush(stdin);
scanf("%d",&a_i);
if (Insert(a,num,a_i))
printf("没有插入!\n");
else
printf("插入后的字符串为:%s\n",a);
system("pause");
}
/*函数功能:在字符串的某个位置插入一个字符*/
int Insert(char a[],char num,int a_i)
{
int i;
if(a_i >= strlen(a))
{
printf("您输入的位置超出字符串长度了!");
return -1;
}
else
{
for(i=strlen(a);i >= a_i;i--)
{
a[i+1]=a[i];
}
a[i]=num;
return 0;
}
}
printf("请输入您想插入的位置:");
fflush(stdin);
scanf("%d",&a_i);
请问这里为什么不能用a_i=getchar(;)