迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C语言 >

在 C 语言中打印字符数组

作者:迹忆客 最近更新:2023/05/05 浏览次数:

本文将介绍关于如何在 C 语言中打印字符数组的多种方法。


在 C 语言中使用 for 循环打印字符数组的方法

如果我们想分别打印数组元素,并以更多的细节格式化输出,for 循环是最明显的解决方案。该方法的关键前提是,我们应该事先知道数组的长度。

需要注意的是,我们可以使用其他的迭代方法,比如 while 循环,但是我们应该知道迭代应该在什么时候停止的值,否则,迭代就会越界抛出错误。

在下面的例子中,我们演示了 for 循环方法,并对六个字符的数组精确地迭代了 6 次。

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

#define STR(num) #num

int main(void) {
    char arr1[] = { 'a', 'b', 'c', 'd', 'e', 'f' };

    printf(STR(arr1)": ");
    for (int i = 0; i < 6; ++i) {
        printf("%c, ", arr1[i]);
    }
    printf("\b\b\n");

    exit(EXIT_SUCCESS);
}

输出:

arr1: a, b, c, d, e, f

使用 printf%s 指定符在 C 语言中打印字符数组

printf 函数是一个强大的格式化输出函数。它可以对输入变量进行类型指定符的操作,并对变量进行相应的处理。

也就是说,字符数组内部的结构与 C 式字符串相同,只是 C 式字符串的字符总是以\0 字节结束,表示结束点。如果我们在字符数组的末尾加上 null 字节,我们可以通过单行 printf 调用打印整个数组。

如果没有指定结束的 null 字节,并且用这个方法调用 printf,程序可能会尝试访问内存区域,这很可能会导致分段错误。

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

#define STR(num) #num

int main(void) {
    char arr1[] = { 'a', 'b', 'c', 'd', 'e', 'f' };
    char arr2[] = { 't', 'r', 'n', 'm', 'b', 'v', '\0' };

    printf("%s\n", arr1);
    printf("%s\n", arr2);

    exit(EXIT_SUCCESS);
}

输出:

abcdeftrnmbv
trnmbv

正如你所看到的,当我们打印没有 null 结束符的 arr1 时,我们会得到更多的字符,直到迭代到一个 null 结束符-\0

另一种使 printf 函数特殊化的方法是在%s 指定符内传递字符串中的字符数。一种方法是在符号%s 之间用整数硬编码字符串的长度,也可以用*符号代替,从 printf 参数中取另一个整数参数。请注意,这两种方法都在数字或星号前加上 . 字符。

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

#define STR(num) #num

int main(void) {
    char arr1[] = { 'a', 'b', 'c', 'd', 'e', 'f' };
    char arr2[] = { 't', 'r', 'n', 'm', 'b', 'v', '\0' };

    printf("%.6s\n", arr1);
    printf("%.*s\n", (int)sizeof arr1, arr2);

    exit(EXIT_SUCCESS);
}

输出:

abcdef
trnmbv

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C 语言中使用 typedef enum

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。

C 语言中的静态变量

发布时间:2023/05/07 浏览次数:151 分类:C语言

本文介绍了如何在 C 语言中使用静态变量。在 C 语言中使用 static 变量在函数调用之间保存变量值

C 语言中生成随机数

发布时间:2023/05/07 浏览次数:64 分类:C语言

本文演示了如何在 C 语言中生成随机数。使用 rand 和 srand 函数在 C 语言中生成随机数

C 语言中的 i++ 与++i

发布时间:2023/05/07 浏览次数:83 分类:C语言

本文演示了如何在 C 语言中使用前缀增量与后缀增量运算符。C 语言中++i 和 i++ 记号的主要区别

C 语言中获取当前工作目录

发布时间:2023/05/07 浏览次数:182 分类:C语言

本文演示了如何在 C 语言中获取当前工作目录。使用 getcwd 函数获取当前工作目录的方法

C 语言中的位掩码

发布时间:2023/05/07 浏览次数:126 分类:C语言

本文介绍了如何在 C 语言中使用位掩码。使用 struct 关键字在 C 语言中定义位掩码数据

C 语言中的排序函数

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文演示了如何在 C 语言中使用标准库排序函数。使用 qsort 函数对 C 语言中的整数数组进行排序

C 语言中的 extern 关键字

发布时间:2023/05/07 浏览次数:114 分类:C语言

本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量

C 语言中的 #ifndef

发布时间:2023/05/07 浏览次数:186 分类:C语言

本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便