C 语言中的字符串数组

您所在的位置:网站首页 string二维数组定义 C 语言中的字符串数组

C 语言中的字符串数组

2024-07-01 06:41| 来源: 网络整理| 查看: 265

使用二维数组符号在 C 语言中声明字符串数组 在 C 语言中使用 char*数组符号来声明字符串数组

本文将演示关于如何在 C 语言中声明一个字符串数组的多种方法。

使用二维数组符号在 C 语言中声明字符串数组

C 语言中的字符串只是存储在连续内存区域中的字符序列。关于字符串的一个区别是,在序列的最后存储了一个终止的空字节/0,表示一个字符串的结束。如果我们用 [] 符号声明一个固定的 char 数组,那么我们就可以在该位置存储一个由相同数量的字符组成的字符串。

需要注意的是,在将字符字符串复制到数组位置时,应该考虑多出一个终止空字节的字符空间。因此,可以用括号符号声明一个二维的 char 数组,并利用它作为字符串的数组。数组的二维将限制字符串的最大长度。在这种情况下,我们任意定义一个宏常量-MAX_LENGTH 等于 100 个字符。整个数组可以用 {""} 符号初始化,将数组中的每个 char 元素清零。当在已经初始化的数组中存储字符串值时,不允许使用赋值运算符,应使用特殊的内存复制函数,如 strcpy。

#include #include #include #define MAX_LENGTH 100 #define NUM_STRINGS 10 int main() { char arr[NUM_STRINGS][MAX_LENGTH] = {""}; arr2[0] = "string literal"; // Not permitted strcpy(arr[0], "hello world"); printf("%s\n", arr[0]); printf("%s\n", strcpy(arr[0], "hello world")); exit(EXIT_SUCCESS); }

输出:

hello world hello world

另外,我们也可以在声明二维字符数组时立即初始化。现代 C11 标准允许用字符串字元初始化 char 数组,甚至当数组长度大于字符串本身时,可以自动在字符串末尾存储空字节。初始化列表的符号与 C++ 语法类似。每一个大括号的元素都应该存储在一个长度为 MAX_LENGTH 的连续内存区域。如果初始化器符号指定的元素少于数组大小,那么剩余的元素将被隐式初始化为\0 字节。

#include #include #include #define MAX_LENGTH 100 #define NUM_STRINGS 10 int main() { char arr2[NUM_STRINGS][MAX_LENGTH] = {{"first string"}, {"second string"}, {"third string"}, {"fourth string"}, {"fifth string"}}; for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3