读书人

数组跟字符串总结

发布时间: 2013-02-19 11:11:40 作者: rapoo

数组和字符串总结

<1>动态开辟二维数组

有时根据题意需得根据输入的二维数来动态的创建二维数组,那么此时就不能想以前一样直接定义多少行多少列了。因为不知道行列多少,假如设定太大浪费空间,申请太小完成不了程序的数据存储。因此需要合理的开辟二维空间。

例子:开辟10行20列


<6>gets读取一行

gets(s)函数与 scanf("%s",s) 相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。

1、gets在scanf前调用,这种调用一般不会出现什么问题,可以正常输入。
2、scanf在gets前调用,这种情况就会出现问题,当输入完scanf中的变量时,运行到gets函数,则会出现问题,出现此问题的原因是gets函数接收了scanf输入完后的回车符,解决的办法是在scanf和gets中间,用getchar函数接收掉回车符,这样就不会出现任何问题了

#include <stdio.h>#include <string.h>int main(){    char S[100];int a;scanf("%d",&a);//试去掉getchar()会出现什么情况?getchar();for(int i = 0;i < a;i++){gets(S);puts(S);}    return 0;}


1楼SJF01154天前 20:26
有啥好东西,记得要分享呀!!!

读书人网 >编程

热点推荐