c语言字符输出%s的问题

#include<stdio.h>void main(){    char a[3]={'a','b','c'};    printf("%s",a);}%s不是输出字符串的吗,为什么字符也可以输出???

#include <stdio.h>


int main(void)

{

    int i = 0;

    char a[20]=" ";    //在这里,给a附空值,否则,后面的数组a如果没有被赋值,系统会随机赋值


    while((a[i++]=getchar())!='\n');

    printf("%s\n",a);


return 0;

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-16
他输出的不只是abc吧,因为%s输出的是字符串,遇到\0结束,所以他也会输出a[3]的内容后面的内容,直到遇到\0为止...
第2个回答  2012-07-16
这是C语言的 隐性转换 将字符自动转成字符串
第3个回答  2012-07-16
本质还是不一样的,字符串里就有一个字符,所以就像输出字符一样本回答被网友采纳
第4个回答  2012-07-16
可以把单个字符当成字符串啊

C语言%s输出错误
因为你的字符数组空间没有用完啊,你可以在while语句执行完后加上a[i]='\\0';就行了!这样就成字符串了。你要分清楚字符数组和字符串的区别!

c语言中的%s该如何理解?
在 C 语言中,%s 是用于格式化输出的格式控制符,通常与 printf 和 scanf 函数一起使用。具体含义如下:一、在 printf 函数中使用 %s 的时候,它表示要在输出中插入一个字符串。需要提供实际的字符串值作为额外参数给 printf。例如,%s 表示要在字符串中插入 str。二、在 scanf 函数中使用 %s 的时...

c语言中%s输出字符串的问题
原因:%s意思是输出一个字符串,后面对应的数据应该是字符串存放的地址值,而55不是一个有效的地址,因此。。。其他是你点调试之后显示的VC\/VS的调试窗口,不用过多研究,以后你经验多了,知识广了,自然能看懂的。}

%s在c语言中代表什么
s在C语言中特指字符串类型的格式占位符。当使用`printf`函数输出字符串时,可以在格式字符串中使用%s来表示接下来要输出的字符串变量。同样地,当使用`scanf`函数从输入流中读取字符串时,也可以用%s来指定接收字符串的变量。3. 使用示例 假设有一个字符串变量名为`str`,可以使用以下方式输出这个字符...

printf()% s是什么意思?
在C语言中,%s是一个格式说明符,用于表示字符串。当我们在printf或者scanf函数中使用%s时,它告诉函数该位置应该插入或读取一个字符串。2. 在printf函数中的应用 当我们使用printf函数输出字符串时,%s用来指定字符串应该放在输出的哪个位置。例如:c printf;这里,%s就像一个占位符,告诉printf函数在"...

C语言 有关字符串中%s输出问题
1,char *str1="Gay"2,printf("%s %s",str1,str2);那就加头文件#include"string"后面改成 printf("%s",strcat(str1,str2));

c语言中%s是什么意思?
在C语言中,%s是一个格式转换说明符,用于指定输出的是字符串数据。当使用像printf或sprintf这样的函数进行格式化输出时,%s告诉函数期望一个字符串参数。例如,printf("%s", name)会将变量name的字符串值输出到标准输出。printf函数是一个重要的C语言标准库函数,它允许程序按照指定的格式输出数据到标准...

c语言中scanf的%s的问题(回答好追加分)
输入格式要与输入内容相配合。year,month,day 声明为int, 要用 %d scanf("%*6d%4d%2d%2d",&year,&month,&day);6d -- 跳过6个字符。4d%2d%2d -- 读4位整数,读2位整数,读2位整数。声明为char year[5], month[3],day[3]; 则可用%s char year[5], month[3],day[3];scanf("%...

c语言输出%s
所以如果printf("%"),会默认为缺少转义字符,打印不出来任何字符。所以printf("\\045")的实际功能就是printf("%"),缺少转义字符。printf("\\044")是可以输出$的。要输出%号只有将其作为第一个%后面的字符输出,所以最后会输出%s这两个字符 cpp这本书会详解这些细节的,推荐去看 ...

C语言中printf输出函数中为什么%s对应数组的数组名,数组名不是一个地 ...
s需要传入一个字符串的首地址。字符串可以是普通的常量字符串const char* str = "aaaa";也可以是一个数组保存的字符串char str2[10] = "bbb";输出时,str和str2都是字符串的首地址。所以都可以作为%s对应的参数。

相似回答