在数组C中存储char无法正常工作

时间:2013-10-19 03:24:39

标签: c arrays char

我有一个数组。但是当它们在我的while循环中时不会打印所有值。是一个疯狂的角色。任何想法。

    int x = 0;
    char a[3][20];


     strcpy(a[0], "Tires");
     strcpy(a[1], "Lights");
     strcpy(a[2], "Seats");

   while(statement here)
   {

      for(x = 0; x< 3; x++)
      {
         printf("%c type", a[x]);
      }
   }

5 个答案:

答案 0 :(得分:3)

你的printf应该是这样的:

printf("%s type\n", a[x]);

因为数组的元素是字符串。

更改printf语句之后的输出:

<强>输出:

Tires type
Lights type
Seats type

如果您愿意,可以删除我添加的\n中的printf。在这种情况下,这是输出:

Tires typeLights typeSeats type

这是我的代码:(轮胎应该显示在这个实施中)

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

int main(){
 int x = 0;
 char a[3][20];


 strcpy(a[0], "Tires");
 strcpy(a[1], "Lights");
 strcpy(a[2], "Seats");

 while(1) // i left in this while as may be using it for something that you haven't shown in your code. 
 {        // But if you are not using while get rid of it .. its unnecessary 

   for(x = 0; x< 3; x++)
   {
      printf("%s type\n", a[x]);
   }
   break;
}

return 0;

}

以下是此代码的运行方式:

Notra:Desktop Sukhvir$ gcc -Werror -Wall -g -o try try.c -std=c99
Notra:Desktop Sukhvir$ ./try
Tires type
Lights type
Seats type

答案 1 :(得分:1)

将您的打印更改为printf("%s type", a[x]); 请注意%s用于打印字符串。

答案 2 :(得分:1)

%c是单个字符的格式字符串,但是您传递的是指向字符数组的指针 - 即字符串。使用%s

printf("%s type\n", a[x]);

您的程序因格式字符串与参数不匹配而导致未定义的行为。

答案 3 :(得分:0)

int x = 0;
    char a[3][20];


     strcpy(a[0], "Tires");
     strcpy(a[1], "Lights");
     strcpy(a[2], "Seats");

   while(statement here)
   {

      for(x = 0; x< 3; x++)
      {
         printf("%s type", a[x]);
      }
   }

答案 4 :(得分:0)

工作正常。

还显示[0]条目。

enter image description here