紫水晶编程技术论坛 - 努力打造成全国最好的编程论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 3714|回复: 1

[分享] C语言里“字符串数组”的一种好记的表达方式

[复制链接]

854

主题

3481

帖子

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

积分
36100
发表于 2016-11-30 20:19:25 | 显示全部楼层 |阅读模式
C里没有字符串类型,字符串都是CHAR或WCHAR数组,如果是字符串数组就是CHAR或WCHAR的二维数组了,二维数组对于脑子不好使的人来说,有点麻烦。
其实对于有固定最大长度的字符串,可以用结构体数组来表示,这样子二维数组又变成一维数组了。例子:
  1. typedef struct _STRING
  2. {
  3.     CHAR buffer[MAX_PATH];
  4. }STRING, *PSTRING;
复制代码
比如要定义一个有100个成员的字符串数组就直接写:
  1. STRING array[100];
  2. //某个index的字符串就是:array[index].buffer
复制代码
要这样子就好理解多了。希望这帖子给纠结C语言字符串数组的小朋友一点帮助。

854

主题

3481

帖子

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

积分
36100
 楼主| 发表于 2019-11-30 06:04:42 | 显示全部楼层
其实直接使用【二维字符数组】表示【字符串数组】也非常简单。例子如下:
  1. void test()
  2. {
  3. #define STRINGS_MAX_COUNT 6 //字符串的最大个数
  4. #define STRING_MAX_LENGTH 4 //每个字符串可以容纳的最大字符个数
  5.         char strings[STRINGS_MAX_COUNT][STRING_MAX_LENGTH]={"aaa","bbb","ccc","ddd","eee","fff"};
  6.         for(int i=0;i<STRINGS_MAX_COUNT;i++){puts(strings[i]);}
  7.         system("pause");
  8. }
复制代码
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|Archiver|紫水晶工作室 ( 粤ICP备05020336号 )

GMT+8, 2024-4-17 07:50 , Processed in 0.022971 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表