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.
发表评论
-
php-study
2012-07-06 09:46 698Let start! 1 静态变量拥有全局变量一样的生存周 ... -
在VC中使用代码组件的三种方法
2012-07-03 13:44 622我是北方的一匹狼,孤军南下…… 喜欢这边的天气,冬天也一样 ... -
Flex权威指南3学习笔记之一------界面知识(三)
2012-07-02 13:09 536使用视图状态 1.新建一个显示购物车的视图状态 ... -
Flex缓存客户端
2012-07-02 13:09 583flex或者flash客户端 ... -
Building a custom Flex preloader
2012-07-02 13:09 833http://www.adobe.com/devnet/f ... -
Felx中的声明addChild方法的类的层级关系
2012-07-02 13:09 541这里需要提到的是,不能在flex里直接用addChild( ... -
Flex4的可视化显示对象
2012-07-02 13:08 411flex3中用addChild(child:Display ... -
【转】Flex和外部应用程序进行通信
2012-07-01 10:39 404Flash To EXE Flex端 Flex创 ... -
flex与twisted通过socket通信
2012-07-01 10:39 490flex端代码 Array = []; while( ... -
Flex TXT文件导入
2012-07-01 10:39 327在上一篇文章中,我们做了一个文件上传、导入组件,其实就是一 ... -
小白学Flex之数据类型
2012-07-01 10:39 420这是第一次写关于flex的文章,也是John开始学习Fle ... -
Flex 捆绑式验证处理
2012-07-01 10:39 532Flex提供的默认的验证器,比如:日期验证器、货币验证器等 ... -
PHP作为Flex程序的数据源
2012-06-30 17:03 334PHP作为Flex程序的数据源 2010年10月20日 ... -
myeclipse6.5+flex 3 + tomcat6.0 + ds-console.war环境搭建
2012-06-30 17:03 902myeclipse6.5+flex 3 + tomcat6.0 ... -
使用blazeds实现flex和java交互
2012-06-30 17:03 494使用blazeds实现flex和java交互 2010年07 ... -
flex笔记--安装与项目建立
2012-06-30 17:03 542flex笔记--安装与项目建立 2011年01月04日 ...
相关推荐
大家都知道在C语言中,有三种主要的输入函数:scanf(),fgets()以及gets()。他们的使用方法及注意事项如下: 1.scanf() 它是一种格式化的输入方式,可一次性按照规定的格式输入多个数据域。 scanf函数是一个标准...
getchar 用于单个字符,gets(不推荐)用于字符串,而 scanf 用于各种不同的数据类型,通常需要使用格式字符串来指定输入的格式。在现代C编程中,推荐使用更安全的函数来代替 gets,如 fgets 和 sscanf。
在c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能...gets()函数经常和puts()函数配对使用,puts()函数用于显示字符串,并自动在字符串后面添加一个换行标志’\n’ 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); } 但是出现如下警告
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...
例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我...
书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495个C语言问题》结构...
previous up contents next C 语言常见问题集 原著:Steve Summit 翻译:朱群英, 孙 云 修订版 0.9.4, 2005年6月23日... o 8.6 我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返回串却是垃圾信息。 ...
回指向字符的指针的函数的指针的数组? . . . . . . . . . . . . . . 3 1.8 函数只定义了一次, 调用了一次, 但编译器提示非法重定义了。. . 4 1.9 main() 的正确定义是什么? void main() 正确吗? . . . . . . . . ...
时间函数举例程序分析 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(<)); /*...