目录
gets函数:
描述
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结果,但回车不属于这个字符串,系统自动用'\0'代替最后的换行符
声明
char *gets(char *str)
参数
- str -- 这是指向一个字符数组的指针,该数组存储了 C 字符串。
注意
1、本函数可以无限读取,不会判断上限,所以程序员应该确保str的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到缓冲区后面的内存位置,这将破坏一个或多个不相关变量的值。这个事实导致gets函数只适用于玩具程序。
2、使用 gets() 时,系统会将最后“敲”的换行符从缓冲区中取出来,然后丢弃,所以缓冲区中不会遗留换行符。这就意味着,如果前面使用过 gets(),而后面又要从键盘给字符变量赋值的话就不需要吸收回车清空缓冲区了,因为缓冲区的回车已经被 gets() 取出来扔掉了。
代码示例
#include <stdio.h> int main() { char str[50]; printf("请输入一个字符串:"); gets(str); //使用gets函数进行输入 printf("您输入的字符串是:%s", str); return(0); }
C语言典列:
题目
输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
分析
第一步:声明及初始化
int i=1,word=0,num=0; //word用来计算单词数,num计算字母数 char letter[80]; //数组用来存放字符串
第二步:输入
printf("请输入:"); gets(letter);//gets函数是在头文件stdio.h中,可以直接使用
第三步:计数
for(i=0;letter[i]!='\0';i++) { //一般一句话单词之间是空格隔开,一个空格结束单词数加一 if(letter[i]==' ') { word++; } //不是空格,就计算字母的个数 else { num++; } }
第四步:输出
//由于字符串的最后一个字符我们会直接换行,而不是输入空格,所以输出的时候单词数加一 printf("单词数为:%d",word+1); printf("字母总数:%d",num);
完整代码
#include<stdio.h> int main() { int i=1,word=0,num=0; char letter[80]; printf("请输入:"); gets(letter); for(i=0;letter[i]!='\0';i++) { if(letter[i]==' ') { word++; } else { num++; } } printf("单词数为:%d\n",word+1); printf("字母总数:%d\n",num); return 0; }
运行结果