C语言字符数组的输入和输出

您所在的位置:网站首页 函数的输入和输出 C语言字符数组的输入和输出

C语言字符数组的输入和输出

2024-03-20 00:29| 来源: 网络整理| 查看: 265

字符数组的输入输出有两种方法: (1)逐个字符输入输出。用格式符“%c”输入或输出一个字符。例如

int main() { char c[6]; //定义一个字符串 for (int i = 0; i printf("%c", c[i]); //输出字符串 } return 0; }

(2)将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串(string)的输入输出。例如

int main() { //char str[]={"China"}; char str[6]; scanf("%s", str); printf("%s", str); return 0; }

在内存中数组的存储情况为: 请添加图片描述 输出时遇到’\0’,就停止输出。 说明: (1)输出的字符中不包含结束符’\0’。 (2)用“%s”格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。 (3)如果数组长度大于字符串实际长度,也只输出到遇到’\0’结束。例如

char c[10]={"China"}; //字符串长度为5,连'\0'一共占6个字节 printf("%s",c);

只输出字符串的有效字符"China",而不是输出10个字符。这就是用字符串结束标志的好处。 (4)如果一个字符数组中包含一个以上’\0’,则遇到第一个’\0’时就结束。例如

int main() { char str[10] = {"China\0boy"}; printf("%s", str); return 0; }

请添加图片描述 (5)可以用scanf函数输入一个字符串。scanf("%s",c); scanf函数中的输入项c是已定义的字符数组名,输入的字符串应该短于已定义的字符数组的长度。例如 已定义char c[6]; 从键盘输入 China 系统会自动在China后面加一个’\0’结束符。如果利用一个scanf函数输入多个字符串,则应该在输入时以空格分隔。例如

char str1[5],str2[5],str3[5]; scanf("%s%s%s",str1,str2,str3);

输入数据:How are you? 由于空格字符分隔,作为三个字符串输入。在输入完后,str1,str2,str3数组的状态如下: 请添加图片描述 数组中没有被赋值的元素的值自动置’\0’。若改为

char str[13]; scanf("%s",str);

如果输入How are you? 由于系统把空格符作为输入的字符串之间的分隔符,因此只将空格前的字符"How"送到str中。把"How"作为一个字符串处理,故在其后加’\0’。str的数组状态为 请添加图片描述 注意:scanf函数中的输入项如果是字符数组名,不要再加上地址符&,因为在C语言中数组名代表该数组的第一个元素的地址(或者说数组的起始地址)。 以下图为例:这个图所表示的是一个字符数组,若数组占6个字节。数组名c代表地址2000。 可以用这个printf("%o",c); //八进制形式输出输出语句得到数组第一个元素的地址,也就是数组的起始地址。 请添加图片描述 (6)前面提到的输出字符串的方法:printf("%s",c); 实际上是这样执行的:按字符数组名c找到其数组第一个元素的地址,然后逐个输出其中的字符,直到遇到’\0’为止。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3