string字符串数组怎么定义

生活小百事通 2024年06月15日 阅读 (85)

我们在用C语言编写程序时,经常会遇到使用字符串数组的情况,这种数组的特点是, 数组中的每个元素都是一个字符串,但每个字符串的长度却不相同。如果你使用C++语言进行编程的话,实现起来相对比较简单,只需直接选择标准模板库的字符串string类,在代码中定义该类的一个数组即可实现。现在的问题是,在纯C语言中如何定义这样的一个字符串数组呢?

如对于下面的一个字符串数组:

str = {

“I love C.”。

“I love C++.”。

“I love JAVA.”。

“I love Python.”。

“I love LabVIEW.”

}

下面给出C语言中的两种定义方法。

这种方法是通过定义一个char类型的二维数组实现,通过二维数组的行索引可得到数组中的每个字符串,列的大小限定了每个字符串所能包含的最大字符个数,所以采用这种定义方式时,列的大小必须不能小于数组所有字符串的最大长度。如对于上面的数组,C语言的定义代码如下:

string字符串数组怎么定义(1)

在取该数组的每个字符串时,直接对行索引即可。

这种方法是通过定义一个指向char类型的指针数组实现,数组中的每个元素都是一个指针,通过该指针可得到数组中的每个字符串。如对于上面的数组,C语言的定义代码如下:

string字符串数组怎么定义(2)

上面的两种方法都可以实现我们的目的,但在内存的占用上两种方法不同。第1种方法定义了一个5行20列的二维数组,即每个字符串所占的字节长度都为20个,所以共需要占用100个字节,而第2种方法是定义的指针数组,每个指针指向的字符串占用的字节长度是其实际长度,所以其总的长度肯定小于100个字节。综合来讲,第1种方法相对于第2种方法,造成了存储空间的浪费情况。

完整的测试代码

下面给出这个例子的完整的C语言测试代码,如下图所示:

string字符串数组怎么定义(3)

程序运行结果如下图所示:

string字符串数组怎么定义(4)

一般在C语言中定义字符串的数组时,推荐使用第2种方法,特别是对于单片机、嵌入式等方面的程序开发时,可以充分利用有限的硬件资源,避免存储空间的浪费。

精彩内容尽在问答鸭,如果您觉得这篇内容不错,别忘了分享给好友哦!

相关文章

  • js如何根据符号截取字符串.

    js如何根据符号截取字符串

    1、新建一个html文件,命名为test.html,用于讲解js如何根据符号截取字符串。2、在test.html文件内,在p标签,使用input标签创建一个字符串输入框,同时设置其id属性值为str。

    2023-01-03 阅读 (654)
  • 如何为MFC模板添加字符串资源.

    如何为MFC模板添加字符串资源

    1、点击开始菜单。2、点击visualstudio2013。3、点击打开项独关蚂目。4、点击目标文件夹。

    2022-08-13 阅读 (396)
  • GVIM 如何实现对某一段落实现字符串替换.

    GVIM 如何实现对某一段落实现字符串替换

    1、使用gvim打开一个文件2、根据自己的需求选取需要替换的关键字,此处以"the"为例,图中已经使用高亮功能将文中所有的"the"高亮塑率3、使用鼠标左键选择你想要替换的段落,如图中红框所示。

    2022-07-18 阅读 (334)
  • 如何在TypeScript中使用不同方法遍历多类型数组.

    如何在TypeScript中使用不同方法遍历多类型数组

    1、第一步,在ts文件中,定义一个数组c,包含了三种基本数据类型number、布尔和string,使用for语句循环遍历数组,如下图所示:2、第二步,保存代码并打开浏览器控制台查看打印结果,可以看到数组元素都打印出来了,如下图所示:3、第三步,将for语句改为for.of,然后还是遍历数组d跟数组c不一样,如下图所示:4、第四步,再次保存代码并在浏览器中预览效果,可以发现打印结果为数组中的元素,如下图所示:5、第五步,除了使用for语句和for.of语句之外,还可以使用foreach语句,如下图所示:6、

    2022-07-18 阅读 (208)
  • jquery如何删除数组中的一个元素.

    jquery如何删除数组中的一个元素

    1、新建一个html文件,命名为test.html,用于讲解jquery如何删除数组中的一个元素。2、在test.html文件内,引入jquery.min.js库文件,成功加载该文件,才能使用jquery中的方法。

    2023-04-01 阅读 (193)
  • js数组根据一个对象的属性值找到对应的对象.

    js数组根据一个对象的属性值找到对应的对象

    1、第一步,为了方便我们队javascript代码进行操作演示,我们点击打开【sublime_texthtml代码编辑器】,详细如下图2、第二步,我们创建一个数组,数组每一项都是一个对象,对象内容有名字,年龄,性别,学号,详细如下图3、第三步,现在我们准备根据【学号schoolnum这个值等于3,找到小智这个对象】,我们使用foreach这个方法来解决,下图是foreach官方文档的使用方法,详细如下图4、第四步,我们【使用foreach来找到schoolnum等于3的对象】,详细的代码如下5、第五步,我

    2022-07-18 阅读 (189)
  • java判断字符串结尾不是给定的则添加尾部字符串.

    java判断字符串结尾不是给定的则添加尾部字符串

    1、在你的demo中引入hutool的jar包2、首先定义一个被检查的字符串和suffix需要添加到结尾的字符串3、再定义出布尔类型的ignorecase检查结尾时是否忽略大小写和suffixes需要额外检查的结尾字符串,如果以这些中的一个为结尾,则不再添加4、strings=strutil.appendifmissing(str1,suffix,ignorecase,suffixes);//自定义是否忽略大小写并得出结果5、运行程序并得出结果查看结果

    2022-07-23 阅读 (169)
  • excel比较两个字符串是否完全相同.

    excel比较两个字符串是否完全相同

    1、首先在我的电脑上找到需要比较两个单元格字符串是否相同的excel文档,双击打开或者右键点击选择打开该文档,如图示例打开测试01.xlsx文档。

    2022-08-23 阅读 (110)
  • excel如何给数组进行排名大小.

    excel如何给数组进行排名大小

    1、首先打开excel表,在数组旁边选择单元格;2、在excel表顶部我们点击“公式”——“插入函数”;3、弹出窗口,我们搜索一下函数rank;4、这时又会跳出一个弹窗,我们在number处输入第一个数值所在单元格a2;5、在ref输入框内选中所有要排名的数组,并加上$绝对符号;6、点击确定后,我们得到了a2单元格的排名值,向下拖动获得所有数值对应的排名。

    2023-04-10 阅读 (93)
  • vb如何判断数组元素个数

    工作中经常需要用到判断数组中是否包含某个元素,查找元素,所以特意封装了元素查找相关的一些列方法。查找数组是否包含某个元素。返回Boolean类型,True表示数组包含该元素,False表示不包含。测试用例 测试用例 测试用例 测试用例...

    2024-04-08 阅读 (88)