gpt4 book ai didi

c - 在c中打印char数组的元素

转载 作者:行者123 更新时间:2023-11-30 20:46:46 26 4
gpt4 key购买 nike

这是我的代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
int x,y,i,j,k;
char c;
char n_avion[6][20]={'BOING747','AIRBUSA380','LEARJET45','DC10','ANTONOV32','CONCORDE'};
char c_avion[6][2]={'B0','AB','Lj','DC','AN','CO'};
int v_avion[6]={800,950,700,900,560,1400};
int r_avion[]={10000,12000,4500,8000,2500,16000};

printf("\nEntrer LE Code d'Avion s'il vous plait : ");

for(i=0; i<6 ;i++){
printf("%c", n_avion[i]);
}

当我尝试使用 %c 打印 n_avion 时它给了我这个päÿ¼└È

当我尝试使用 %s 打印 n_avion 时它给了我这个70502E

我真正想要的是这个BOING747

请提供任何帮助和感谢

最佳答案

有很多问题:

  • 字符串必须包含在 " 之间,而不是 '
  • c_avion[6][2] 应为 c_avion[6][3] 您还需要一个字符作为字符串终止符(字符串以 NUL 字符终止) )
  • printf("%c", n_avion[i]) 使用了错误的字符串格式说明符,它应该是 %s 而不是 %c
  • 在 printf 格式字符串末尾添加 \n,否则名称将打印在单行上,不带空格(尝试)

更正的代码:

int main()
{
int x, y, i, j, k;
char c;
char n_avion[6][20] = { "BOING747","AIRBUSA380","LEARJET45","DC10","ANTONOV32","CONCORDE" };
char c_avion[6][3] = { "B0","AB","Lj","DC","AN","CO" };
int v_avion[6] = { 800,950,700,900,560,1400 };
int r_avion[] = { 10000,12000,4500,8000,2500,16000 };

printf("\nEntrer LE Code d'Avion s'il vous plait : ");

for (i = 0; i < 6; i++) {
printf("%s\n", n_avion[i]);
}
}

顺便说一句:我的 Crystal 球告诉你,你迟早需要使用struct

其他提示:

不要使用“魔数(Magic Number)”,例如 63,而应使用常量。

例如:

#define NAMELENGTH 20
#define SHORTNAMELENGTH 3
#define NBOFPLANES 6
...
char n_avion[NBOFPLANES][NAMELENGTH] = ...
char c_avion[NBOFPLANES][SHORTNAMELENGTH] = ...
...
etc.

关于c - 在c中打印char数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47160644/

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