数据结构论坛

注册

 

发新话题 回复该主题

C语言字符数组操作,归纳,整理,总结 [复制链接]

1#
白癜风治疗效果 https://m-mip.39.net/pf/mipso_5888067.html

6.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=

分享 转发
TOP
发新话题 回复该主题