二维字符串数组如何正确输出?

99ANYc3cd6
预计阅读时长 8 分钟
位置: 首页 C语言 正文

C语言二维字符串数组输出

在C语言中,二维字符串数组实际上是一个字符指针数组(char *[])或二维字符数组(char[][]),下面我将介绍几种常见的定义和输出方式。

c语言 二维字符串数组 输出
(图片来源网络,侵删)

定义方式

字符指针数组

char *str_array[] = {
    "Hello",
    "World",
    "C Programming"
};

二维字符数组

char str_array[][20] = {
    "Hello",
    "World",
    "C Programming"
};

输出方法

方法1:使用循环逐个输出字符串

#include <stdio.h>
int main() {
    char *str_array[] = {
        "Hello",
        "World",
        "C Programming"
    };
    int size = sizeof(str_array) / sizeof(str_array[0]);
    for (int i = 0; i < size; i++) {
        printf("%s\n", str_array[i]);
    }
    return 0;
}

方法2:使用指针数组遍历

#include <stdio.h>
int main() {
    char *str_array[] = {
        "Hello",
        "World",
        "C Programming"
    };
    for (char **p = str_array; *p != NULL; p++) {
        printf("%s\n", *p);
    }
    return 0;
}

方法3:二维字符数组输出

#include <stdio.h>
int main() {
    char str_array[][20] = {
        "Hello",
        "World",
        "C Programming"
    };
    int rows = sizeof(str_array) / sizeof(str_array[0]);
    for (int i = 0; i < rows; i++) {
        printf("%s\n", str_array[i]);
    }
    return 0;
}

注意事项

  1. 字符指针数组:每个字符串可以有不同的长度,但需要确保指针有效。
  2. 二维字符数组:所有字符串的长度不能超过第二维的大小(如上面的20)。
  3. 字符串终止符:确保每个字符串都以'\0'否则可能导致输出错误。
  4. 内存管理:如果是动态分配的字符串,记得释放内存。

完整示例

#include <stdio.h>
int main() {
    // 定义二维字符串数组
    char *fruits[] = {
        "Apple",
        "Banana",
        "Orange",
        "Grape",
        NULL  // 作为结束标记
    };
    // 输出所有字符串
    printf("Fruit list:\n");
    for (int i = 0; fruits[i] != NULL; i++) {
        printf("%d. %s\n", i+1, fruits[i]);
    }
    return 0;
}

输出结果:

Fruit list:
1. Apple
2. Banana
3. Orange
4. Grape

希望这些信息对你有帮助!如果你有特定的需求或遇到问题,可以进一步提问。

c语言 二维字符串数组 输出
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
C语言实验指导书答案哪里能找到?
« 上一篇 今天
织梦CMS后台乱码怎么解决?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]