字符数组输出问题
本帖最后由 老牛来学习 于 2020-2-26 23:01 编辑#include<stdio.h>
int main()
{
char a = {'a','b','c'};
printf("%s",a);
}
上述代码中为什么按%d整型输出可以,也可以输出a,但是不能用%s字符串输出其中一个,比如a【1】?
怎样才能调用其中单独一个字符输出?
因为a是字符不是字符串。
字符数组 a = {'1','2','3'};也不是字符串
字符数组 a = {'1','2','3','\0'}; 这才是用来表示字符串的字符数组 ba21 发表于 2020-2-26 23:00
因为a是字符不是字符串。
字符数组 a = {'1','2','3'};也不是字符串
字符数组 a = {'1','2','3' ...
刚改了一下问题。
那我怎么才能实现调用其中一个字符输出? 本帖最后由 magicpower 于 2020-2-26 23:08 编辑
你需要%c来输出字符,可以看看c的函数说明,小甲鱼应该有把printf的所有说明符写在那里 magicpower 发表于 2020-2-26 23:07
你需要%c来输出字符,可以看看c的函数说明,小甲鱼应该有把printf的所有说明符写在那里
感谢感谢,刚看蒙了 你这是对字符数组和字符串有误解。
char a = {'a','b','c'};定义了一个字符数组。
这个时候变量a是一个地址,表示字符数组的首地址,也可以字符串第0个元素的地址,也可以表示将字符串a;
printf("%c",a);打印字符数组的0个字符元素
要把字符数组按照字符串输出可以用一下两种形式
printf("%s",a);
或者
printf("%s",&a);。
概括的说,以%s打印字符串,后面对应的参数需要是一个字符串的开始地址。
例如
printf("%s",&a); 打印的就是abc;
printf("%s",&a); 打印的就是bc;
#include<stdio.h>
int main()
{
char a = {'a','b','c'};
printf("%s",a);
} major_lyu 发表于 2020-2-26 23:12
你这是对字符数组和字符串有误解。
char a = {'a','b','c'};定义了一个字符数组。
谢谢
页:
[1]