【问题标题】:How to access the first character of a character array?如何访问字符数组的第一个字符?
【发布时间】:2011-04-20 05:22:48
【问题描述】:
#include <stdio.h>

int main(void){
    char x [] = "hello world.";
    printf("%s \n", &x[0]);
    return 0;
}

上面的代码打印出"hello world."

我如何只打印出"h"?访问x[0] 不应该确保这一点吗?

【问题讨论】:

    标签: c arrays indexing printf character


    【解决方案1】:

    你应该这样做:

    printf("%c \n", x[0]);
    

    打印字符的format specifierc。所以要使用的格式字符串是%c

    还要访问有效索引i 处的数组元素,您需要说array_name[i]。您不应该使用&amp;。使用&amp; 将为您提供元素的地址。

    【讨论】:

      【解决方案2】:

      访问x[0]不应该确保这一点吗?

      不是,因为&amp;x[0]中的&amp;获取的是字符串第一个元素的地址(所以相当于只使用x

      %s 将输出字符串中的所有字符,在字符串末尾看到空字符(对于文字字符串是隐含的)。

      要打印出一个字符而不是整个字符串,请改用字符格式说明符%c

      请注意,printf("%s \n", x[0]); 将无效,因为 x[0] 的类型为 char,而 %s 需要 char *

      【讨论】:

      • @Kay,不要发表评论说“非常感谢”,而是尝试点击帖子旁边的向上箭头。另外,请单击最佳答案旁边的复选标记。
      【解决方案3】:
      #include <stdio.h>
      
      int main(void){
          char x [] = "hello world.";
          printf("%c \n", x[0]);
          return 0;
      }
      

      【讨论】:

        【解决方案4】:

        C 中的字符串是一个字符数组,最后一个字符是 NULL 字符 \0。当您在printf 中使用%s 字符串说明符时,它将开始在给定地址打印字符,并继续直到遇到空字符。要打印单个字符,请改用%c 格式字符串。

        【讨论】:

          【解决方案5】:

          因为 C 中的字符串是一个字符数组。 该语句将打印第一个字符。

          printf("%c \n", "hello world."[0]);
          

          【讨论】:

            猜你喜欢
            • 2019-05-05
            • 2018-08-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-11
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多