1、我们韦蛾拆篮经常使用scanf 和 %s来达成从键盘输入字符串的结果但其实使用 gets() 函数从键盘输入字符串的方法比使用 scan熠硒勘唏f 和 %s更简单。gets() 函数只有一个参数,该参数类型是 char* ,也就是说 str 既可以是一个字符指针变量名,也可以是一个字符数组名。
2、gets() 函墙绅褡孛数的功能是从缓冲区中读取字符串并存储到字符指针变量 str 所指向的内存空间。 其原型是: char *gets(char *string);如以下程序的结果是:请输入字符串:hello worldhello world
3、相比于scanf, gets() 函数会更简单简洁,并且gets()还可以输入带空格的字符串,而 scanf 一定要定义多个字符数组。
4、另外,gets()还可以用于初始化字符指针变量所指向的内存单元如以下程序的结果是:请输入字符串:hello... worldhello... world
5、缓冲区中不会遗留换行符使用 gets()函数时,系统会自动将最后打出来的换行符从缓冲区中取出来丢弃如以下程序的结果是:请输入字符串:hello worldhello worldY ch = Y
6、因此如果前面使用的是其他函数而不是gets(),那么就必须先使用 getchar() 清空缓冲区然后再通过键盘给 ch 赋值getchar()用法如下