前言1.c语言没有字符串类型,因此字符串的使用必须通过字符数组来实现。 本文通过三个例子实现字符数组的输入输出操作。
2 .通过scanf();键盘输入数据时,遇到“空格”,“回车”将退出。 要接受空间,请使用gets();代替scanf();。
3 .若同时出现多个scanf();,则为上一个scanf (); 如果仍有“回车”,则以下scanf();将变为只读:“空格”。 要避免这种情况,必须在使用scanf();后使用3358
4 .文中出现的fflush(stdin);,gets()函数需要引入3358www.Sina.com/头文件
#include string.h方法1字符串函数char ch1[20]; //字符数组gets(ch1 ); puts(ch1;
方法2常用输入输出函数char ch2[20]; //字符数组scanf('%s ',ch2 ); printf(%s(n )、ch2 ); 闪存(stdin; 用完扫描后,清除缓冲区
注:需要特别注意的是,使用puts()后,请使用string.h 清空缓冲区。 否则,下一个输入操作将读取此操作的其馀“回车键”。
方法3指向字符串的指针中间变量char buffer[20]; char *ch3; gets (缓冲器); ch3=buffer; puts(ch3;
注意:定义指针时,指针尚未初始化,因此不能将输入的值直接分配给指针。 必须经由中间变量。
附录
完整的测试代码如下。
# include stdio.h # include string.hint main () {/1printf('1n ' ); char ch1[20]; gets(ch1; puts(ch1; //2打印(2(n ) ); char ch2[20]; 扫描(' % s ',ch2 ); printf(%s(n )、ch2 ); 闪存(stdin; 用完扫描后,缓冲区//3printf(3n ); char buffer1[20]; char *ch3; gets (缓冲器1 ); ch3=buffer1; puts(ch3; 返回0; }结果如下。