c - 从数组打印字符串

标签 c printf arrays

我知道如何编程 Java,现在我正在尝试学习 C 编程。

我想从我创建的 charArray 中写出一个 String,并在一行中写出每个 String (我正在创建一个控制台应用程序)。

到目前为止我已经知道了;

int main()
{
    int i;
    int j;
    char aarhus[] = {'\x8F','r','h','u','s',' ','H','\0'};
    char esbjerg[] = {'E','s','b','j','e','r','g','\0'};
    char stationer[] = {*aarhus,*esbjerg};
        for (j=0;stationer[j] != '\0';j++) {
            printf("%c\n", stationer[j]);
        }
    return 0;
}

当然,包含在顶部。 但是当我启动该程序时,它只写了 ÅEEsbjerg 而不是 Århus Esbjerg(两者都在一行上,正如我所希望的那样)。如果我在 stationer[] 中添加 \0,我得到的只是同一行上的 ÅE。几个小时以来,我一直在尝试解决这个问题,但到目前为止还没有。我希望你能帮忙。提前致谢

最佳答案

您可能正在寻找这样的东西:

int main()
{
   int j;
   char aarhus[] = {'\x8F', 'r', 'h', 'u', 's', ' ', 'H', '\0'};
   char esbjerg[] = {'E', 's', 'b', 'j', 'e', 'r', 'g', '\0'};
   char* stationer[] = {aarhus, esbjerg, 0};
   for(j = 0; stationer[j] != 0; j++) 
   {
      printf("%s", stationer[j]);
   }
}

或者可能是这样的:

int main()
{
   int j;
   char aarhus[] = {'\x8F', 'r', 'h', 'u', 's', ' ', 'H', '\0'};
   char esbjerg[] = {'E', 's', 'b', 'j', 'e', 'r', 'g', '\0'};
   char* stationer[] = {aarhus, esbjerg};
   int count = sizeof(stationer) / sizeof(char*);
   for(j = 0; j < count; j++) 
   {
      printf("%s", stationer[j]);
   }
}

关于c - 从数组打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22068593/

相关文章:

c - stack 未初始化的值是由堆栈分配创建的

c - 八进制的指数表示法

java - 用整数 1-10 填充数组,同时检查该整数是否已在数组中

c - fprintf覆盖C中的其他数据

c++ - SIGSEGV,段错误。 while printf() 数组索引的值

Java:在 X-Y 网格上绘制 .flac 音频文件的左声道和右声道。 (示波器)

c - 尝试声明大数组时出现段错误和核心转储

c - vector 、矩阵和数据帧是如何在 R 中实现的?

C语言-结构体

c - sprintf 和分配内存