C语言 有什么错吗?[关闭]

pkwftd7m  于 2023-05-06  发布在  其他
关注(0)|答案(1)|浏览(207)

**关闭。**这个问题是not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
6天前关闭。
Improve this question
我不得不打印字符串,但它只是显示错误;/
这是我的代码:

#include <stdio.h>

int main(){
    char str[] = "Harry";
    char *ptr = str;
    while(*ptr != '\0'){
        printf('%c', *ptr);
        ptr++;
    }
    
    return 0;
}

我试着打印The String As Harry,它显示了这个:

Strings.c: In function 'main':
Strings.c:9:16: warning: multi-character character constant [-Wmultichar]
         printf('%c', *ptr);
In file included from Strings.c:1:0:
c:\mingw\include\stdio.h:454:38: note: expected 'const char *' but argument is of type 'int'
 _CRTIMP __cdecl __MINGW_NOTHROW  int printf (const char *, ...);
                                      ^~~~~~
yvfmudvl

yvfmudvl1#

printf()需要的格式字符串与"%c"一样,但您传入了一个(无效的)整数常量'%c'。我也简化了你的代码:

#include <stdio.h>

int main(void) {
    char str[] = "Harry";
    for(char *ptr = str; *ptr; ptr++)
        printf("%c", *ptr);
}

在这种情况下,您可以只执行char *ptr = "Harry",但通常这意味着您不再拥有指向原始字符串的指针。

相关问题