#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无用