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

标签 c arrays string

这是我的代码

#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/

相关文章:

arrays - [_; 中的数组长度 N 允许使用什么表达式? N]?

C++ 数组和函数,代码无法运行

java - java中如何拆分字符串

c - 一轮 float 值

计数交替向上/向下序列

在不知道元素类型的情况下计算数值数组元素的平均值

mysql - 在 MySQL 中提取子字符串

c - 我所有的局部变量都被删除

c - 将一系列字符一次存储在一个 char 数组中

c# - 我在这里用什么代替 int ? C#命令