白癜风治疗效果 https://m-mip.39.net/pf/mipso_5888067.html6.1字符数组的输入输出
C语言提供的printf函数中,可以使用%c输出一个字符,使用%s输出一个字符串。使用%s格式输出字符串时,是逐个输出字符数组中的每一个字符,直到遇到字符串结束符\0为止。在输出的字符串中,不显示字符串结束符。假设有字符串定义如下:
charbuf[]="abcde";
那么,使用%s格式输出字符串是:
printf("buf=%s\n",buf);
可以看到,直接输出字符串数组名,就会输出字符串数组中存放的每一个字符,直到遇到字符串结束符\0为止。程序测试例子如下:
深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂
程序运行结果如下:
可以看到,array字符数组存放一个字符串,printf函数可以使用%s格式,输出字符串数组名存放的字符串。printf函数可以使用%c格式,输出每一个字符的符号表示;每一个字符存放在内存中,是存储其ASCII值,所以,可以使用%d输出字符的ASCII数值。
C语言提供了scanf函数可以从终端接收用户输入的数据,那么,可以使用%s格式接收一串字符串。首先,我们先定义存放字符串的字符数组,如下:
charbuf[];
然后,使用scanf函数,接收用户从终端输入的字符串,格式如下:
scanf("%s",buf);
注意,buf是一个字符串数组变量,数组名代表数组内存块的首地址,所以,不需要使用取地址符“”来获取数组变量的地址。直接使用数组名,就可以表示数组变量的地址。程序测试例子如下:
深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂
程序运行结果如下:
可以看到,我们在终端上输入“”字符串,按下回车键表示结束输入,那么,scanf函数就获取到“”字符串,并存放到array数组中。最后,输出array字符数组中的数据,就是我们输入终端的数据。
注意:scanf函数在接收字符串输入的过程中,遇到“空格”表示结束一个字符串的输入。所以,我们要想接收用户输入的字符串中带有空格,就应该考虑到空格结束字符串输入,使用多个字符串分开存储。程序测试例子如下:
深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂
程序运行结果如下:
可以看到,在输入“yyyxxxzzz”字符串的过程中,字符串之间有空格,表示结束输入字符串。所以,就定义多个字符数组来接收字符串数据。C语言还提供了gets/puts函数,用于输入/输出字符串。程序测试例子如下:
深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂
程序运行结果如下:
mylinux
ubuntu

/src/test$gcctest.c-oexe
mylinux
ubuntu

/src/test$./exe
input=