gpt4 book ai didi

C char 在编译时显示为 int

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:59 26 4
gpt4 key购买 nike

我正在学习 C,并且一直在尝试编写一个程序来接受用户输入,并删除其中的任何双空格,然后再次打印出来。我们还没有做数组,所以我需要一个字符一个字符地做。这是我的代码:

#include <stdio.h>

main()
{
char c;
int count;
count = 0;

while ((c = getchar()) != '\n')
if (c == ' ')
count++;
if (c != ' ')
count = 0;
if (count <= 0)
printf("%s", c);
}

但是,此代码不起作用。编译器返回错误

:15: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’

有什么帮助吗?我不知道我做错了什么。

最佳答案

使用%c 格式说明符打印单个char

printf("%c", c);

%s 格式说明符告诉 printf 期望一个以 null 结尾的字符数组(又名字符串)。

由于传递给 printf 的参数(超出格式字符串)的默认提升,错误消息指的是 c 具有 int 类型。 This previous answer对默认促销有很好的描述; this previous thread解释了为什么需要默认促销的一些原因。

关于C char 在编译时显示为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14626657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com