有过Java编程的朋友都知道,在Java中有String类型,这就意味着我们可以通过Scanner类来实现任意长度的字符串输入而不用担心没有足够的空间来存储字符串。
但是在C语言中就不一样,在C语言本身提供的各种输入函数中,都需要我们事先为我们要存储的字符串提供足够的数据空间,最常用的做法是如下所示的那样:
char s[100]; //定义一个可以存储100个字符的空间
scanf(“%s”,s); //输入字符串
在这样的做法中我们至少有三个方面的不足,一是如果我们输入的字符超过了100个,那么程序就只会把前100个字符存入s中,二是如果我们输入的字符没有达到100个,那么就会造成数据空间的多余,三是在使用scanf()函数时,当我们输入空格时,函数会把空格后面的字符截断而不能保存到s中。
因此,寻求一种和Java相似的输入方式,而不用关心内存分配、数组越界和空格等特殊字符的影响的输入方式其现实意义十分的明显,用户只要输入然后回车就可以获得输入的数据是最理想的,这也符合人们的输入习惯。
因此,我实现了这样的一个函数char *getString(),你只需输入字符,当输入完毕按回车就可以返回一个指向你输入字符串的一个字符指针。
你可以点击此处下载该函数的源码,经过我的测试,该函数能够实现我以上所说的功能。
没有相关文章.
Comments
Leave a comment Trackback