|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- char *s_gets(char *st,int n)
- {
- char *ret_val;
- int i =0;
- ret_val=fputs(ret_val,n,stdin);
- if(ret_val)
- {
- while(st[i]!='\n'&&st[i]!='\0')
- i++;
- if(st[i]=='\n')
- st[i]==='\0';
- else
- while(getchar()!='\n')
- continue;
- }
- return ret_val;
- }
复制代码
为什么这里的条件是st[i]!='\n'&&st[i]!='\0'呢? 字符串输入后有几种情况,1.正好输入满,这样 "ABCDE\0"\n ,只需要判断有没有\0就行了
2.如果溢出,只会输入"ABCD" 后面的\0都没有,这样不是就不符合字符串的要求吗?
3.输入内容不足,"AB\0"\n 这样不是也只需要判断是否是\0就可以了吗?
为什么要判断&&st[i]!='\n'呢
这要看你对读取的操作了,你当然可以设置只有输入某些字符情况下才结束输入,并不一定得是回车
|
|