gpt4 book ai didi

在 C 编程中转换数组字符

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

为什么我使用以下代码从控制台得到一个?

 char array1[] = "Hello World";

char ch = array1;
printf(" %s" , ch);

(我们被指示不要用指针这样做)

最佳答案

因为你需要让 ch 成为一个指向字符的指针。编译器应该警告您正在将字符指针分配给字符变量,并且它应该警告您您正在尝试 printf("%s") 在非字符指针变量上——如果没有,您应该提高编译器的警告级别!

只需添加一个容易被遗忘的小星星即可使其正常工作:

#include <stdio.h>
int main()
{
char array1[] = "Hello World\n";

char *ch = array1; printf(" %s" , ch);
return 0;
}

为了完整起见,我还冒昧地在您的字符串末尾添加了一个换行符并将其放入适当的 main 函数中。


我刚刚注意到您说您“不允许使用指针执行此操作”——几乎唯一的其他方法是逐个字符地打印出来,直到您遇到空终止符:

#include <stdio.h>
int main()
{
char array1[] = "Hello World\n";

int i;
for (i = 0 ; array1[i] != '\0' ; i++)
{
printf("%c", array1[i]);
}
return 0;
}

输出:

$ ./a.outHello World

一个更稳健的方法是同时限制您将打印出的字符数,但仅检查 \0 可能足以完成看似家庭作业的任务。

关于在 C 编程中转换数组字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469575/

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