`
pgmjl71f
  • 浏览: 9496 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

字符串输入函数gets( ) fgets( ) scanf( )

 
阅读更多

  C库提供了三个读取字符串的函数:gets( )  fgets( )  scanf( )。
  gets()---get string 从系统的标准输入设备(通常是键盘)获得一个字符串。因为字符串没有预定的长度,所以gets()需要知道输入何时结束。解决办法是在读字符串直到遇到一个换行符(\n),按回车键可以产生这个字符。它读取换行符之前(不包括换行符)的所有字符,在这些字符后加一个空字符(\0)。它会丢弃换行符。
  定义函数   char *gets(char *s)
  返回值     gets()若成功则返回s指针,返回NULL则表示有错误发生。 /* name1.c -- reads a name */ #include  #define MAX 81 int main(void) { char name[MAX]; /* 分配空间 */ printf("Hi, what's your name?\n"); gets(name); /* 把字符串放进name数组中 */ printf("Nice name, %s.\n", name); return 0; }  fgets()---是为文件I/O设计的
  定义函数  fgets(char *s,int size,FILE *stream)
  返回值    若成功则返回s指针,返回NULL则表示有错误发生。
  fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,知道出现换行符、读到文件尾或者是读了size-1个字符为止。fgets()会把换行符存储到字符串里。 /* name3.c -- reads a name using fgets() */ #include  #define MAX 81 int main(void) { char name[MAX]; char * ptr; printf("Hi, what's your name?\n"); ptr = fgets(name, MAX, stdin); printf("%s? Ah! %s!\n", name, ptr); return 0; } 运行结果
  Hi, what's your name?
  Jon Dough
  Jon Dough
  ? AH! Jon Dough
  !
  scanf( )---格式化字符串输入
  定义函数  int scanf(const char *format,。。。。。)
  返回值   成功则返回参数数目,失败则返回-1
  参数   size---允许输入的数据长度
  l      ---以long int或double型保存
  h    ---short int型保存
  s    ---字符串
  c    ---字符 /* scan_str.c -- using scanf() */ #include  int main(void) { char name1[11], name2[11]; int count; printf("Please enter 2 names.\n"); count = scanf("%5s %10s",name1, name2); printf("I read the %d names %s and %s.\n", count, name1, name2); return 0; }  运行结果
  Please enter 2 names.
  Jesse Jukes
  I read the 2 names Jesse and Jukes.
  Please enter 2 names.
  Liza Applebottam
  I read the 2 names Liza and Applebotta.
  Please enter 2 names.
  Portensia Callowit
  I read the 2 names Porte and nsia.
分享到:
评论

相关推荐

    C语言中输入函数(scanf()、fgets()和gets())的区别详解

    大家都知道在C语言中,有三种主要的输入函数:scanf(),fgets()以及gets()。他们的使用方法及注意事项如下: 1.scanf() 它是一种格式化的输入方式,可一次性按照规定的格式输入多个数据域。 scanf函数是一个标准...

    C语言中getchar, gets, 和 scanf 三种不同函数的区别

    getchar 用于单个字符,gets(不推荐)用于字符串,而 scanf 用于各种不同的数据类型,通常需要使用格式字符串来指定输入的格式。在现代C编程中,推荐使用更安全的函数来代替 gets,如 fgets 和 sscanf。

    详解C语言gets()函数与它的替代者fgets()函数

    在c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能...gets()函数经常和puts()函数配对使用,puts()函数用于显示字符串,并自动在字符串后面添加一个换行标志’\n’ gets()函数存在一个严重的缺

    Linux系统下C语言gets函数出现警告问题的解决方法

    // 存放输入的字符串 int i, j, n; printf(输入字符串:); gets(s); n=strlen(s); for(i=0,j=n-1;i,j--) if(s[i]!=s[j])>=j) printf(是回文串\n); else printf(不是回文串\n); } 但是出现如下警告

    C语言讲义.doc

    8.5 用SCANF输入字符串 40 8.6 字符串的结束标志 41 8.7 字符串处理函数 41 8.7.1 gets 41 8.7.2 fgets函数 41 8.7.3 puts函数 42 8.7.4 fputs函数 42 8.7.5 strlen,字符串长度 42 8.7.6 strcat,字符串追加 42 8.7...

    你必须知道的495个C语言问题

    例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我...

    《你必须知道的495个C语言问题》

    书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495个C语言问题》结构...

    C语言FAQ 常见问题列表

    previous up contents next C 语言常见问题集 原著:Steve Summit 翻译:朱群英, 孙 云 修订版 0.9.4, 2005年6月23日... o 8.6 我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返回串却是垃圾信息。 ...

    你必须知道的495个C语言问题(PDF)

    回指向字符的指针的函数的指针的数组? . . . . . . . . . . . . . . 3 1.8 函数只定义了一次, 调用了一次, 但编译器提示非法重定义了。. . 4 1.9 main() 的正确定义是什么? void main() 正确吗? . . . . . . . . ...

    C语言程序设计实例(200行)

    时间函数举例程序分析 2.程序源代码: #include "stdio.h" #include "time.h" void main() { time_t lt; /*define a longint time varible*/ lt=time(NULL);/*system time and date*/ printf(ctime(<)); /*...

Global site tag (gtag.js) - Google Analytics