#include<stdio.h>
int main(){
char a[10];
int i;
//scanf("%s",a);
for(i=0;i<=8;i++)
{
a[i]=i;
}
a[9]='\0';
printf("%s",a);
}
请问为什么使用%s输出不了字符串
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- A-Chin 2022-04-08 22:49关注
如果直接给字符变量赋值为int型,则对应的是ACSII码中对位的字符,在ACSII中,0是NUL,也就是我们常说的
'\0'
楼主的代码中,
a[0] = '\0'
,所以没有看到结果。改一下代码能够看得更清楚,让a[3]为0:
#include<stdio.h> int main(){ char a[10]; int i; //scanf("%s",a); for(i=0;i<=8;i++) { a[i]=i+'a'; } a[3]=0; printf("%s",a); return 0; }
输出:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
- ¥15 扩散模型sd.webui使用时报错“Nonetype”
- ¥15 stm32流水灯+呼吸灯+外部中断按键
- ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
- ¥15 NX MCD仿真与博途通讯不了啥情况
- ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
- ¥15 gradio的web端页面格式不对的问题
- ¥15 求大家看看Nonce如何配置
- ¥15 Matlab怎么求解含参的二重积分?
- ¥15 苹果手机突然连不上wifi了?