【问题标题】:How can I get a string from a 2d character array in C? [duplicate]如何从 C 中的二维字符数组中获取字符串? [复制]
【发布时间】:2020-05-19 20:10:41
【问题描述】:

二维数组:

char c[4][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}};

因为我想在运行程序后得到'def',所以我尝试了这段代码:

printf("%s\n",c[1]);

但是,结果是“defghijkl\262”。我的代码有什么问题?

【问题讨论】:

  • 空终止符。
  • %s 表示字符串。你没有空终止符,所以它会在你身上跑掉。二维字符数组不是字符串。阅读printf。学习 C。

标签: c arrays string


【解决方案1】:

您可以通过两种方式打印def

char c[4][4]={{'a','b','c','\0'},{'d','e','f','\0'},{'g','h','i','\0'},{'j','k','l','\0'}};        
printf("%s\n",c[1]);

所以,基本上printf 需要空终止才能知道在哪里停止打印

或者您可以使用没有空终止的循环进行打印,例如:

char c[4][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}};
for(int i = 0; i < 3; i++)
{
   printf("%c", c[1][i]);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 2021-07-02
    • 2021-04-29
    • 2021-03-11
    • 2014-07-11
    相关资源
    最近更新 更多