在linux系统下使用C语言开发时,在特定场景之下需要用到字符串输入语句,并且有时会输入空格。使用通常使用的字符串输入函数则会出现一些问题。
(1)使用scanf不能接收空格
(2)使用gets又会出现警告 ,又内存溢出的风险,
(3)使用fgets时,亲测,虽然可以接收带有空格的字符串命令,但是其内容却带有换行符,无法正确识别原来的字符串命令
void mygets(char get_str[128])//形参传入一个字符型的数组,或者一个字符串变量
{
int i;
char c;//作为值的中间传递
for(i=0;i<128;i++)//使用循环将每个输入的字符存入字符数组的每一个地址中
{
c=getchar();//先将输入的每个字符存入C
get_str[i]=c;//再将存入C的字符赋值给字符数组
if(c=='\n')
{
get_str[i]='\0';//当按下回车时,将回车符改为空格符并且结束输入
break;
}
}
}
PS:
(1)我们知道的是如果形参传入的是一个地址,会改变原地址所存放的数据
(2)根据字符串输入的长度,自拟数组长度哦!