c语言字符串问题

分别输出字符串的单个字符的时候用printf函数输出格式%s为什么会导致错误,而输出%c就没问题,是因为空字符的原因吗?
代码如下

include<stdio.h>

include<string.h>

int main(int argc, char const *argv[])
{

char a[55],b[55],sum[55];        //定义a,b国人,sum为他们的总意见
int i;
gets(a);
gets(b);                        //输入两个国家人的意见
strlen(a);                        //计算意见问题的个数
for (int i = 0; i < strlen(a); ++i)
{
    if (a[i]==b[i])
    {
        sum[i]='1';            
    }
    else
        sum[i]='0';
}                                //计算总意见
for (int i = 0; i < strlen(a); ++i)
{
    printf("%c",sum[i] );   //问题所在!!!
}
printf("\n");
return 0;

}

阅读 2.8k
3 个回答

%s表示的是输出字符串,%c表示输出的是字符。
在你上面的程序中,输出的是字符,因此要用%c,,注意一下字符与字符串的关系

%s是字符串,也就是字符数组,参数应该是指针,而你要输出的是字符,所以要用%c

格式化输出要与变量类型对应,字符char类型,当然要用%c,如果%s的话,必须传入字符串名称

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进