首页 > 解决方案 > C: 是否可以将 char 数组中的某些元素合并/分组,使其成为字符串数组?

问题描述

我在 C 中有一个字符数组:

Array = {'7', '.', '8', '*', '3', '-', '4', '.', '5', '6', '+', '1', '0'}

上面是一个数学方程7.8 * 3 - 4.56 + 1,我将每个字符存储为数组中的单个元素。

我正在尝试更改数组,以便十进制数是一个元素。因此,数组应如下所示:

Array = {'7.8', '*', '3', '-', '4.56', '+', '1'}

如果有人能告诉我如何清楚地做到这一点,我将不胜感激,因为我是初学者。

我是 C 的新手,所以如果这个问题不完全有意义,我深表歉意。提前感谢您的帮助!

标签: carraysmergeconcatenation

解决方案


如果我理解正确,您只想:

const char *array[] = { "7.8", "*", "3", "-", "4.56", "+", "1"};
// well, short usage example:
for (size_t i = 0; i < sizeof(array)/sizeof(*array); ++i) { 
     printf("array[%zu] = %s\n", i, array[i]);
}

array是一个指向常量字符的指针数组。该数组的每个元素都是一个字符串文字。字符串文字在 C 中是不可变的,因此它必须是指向const字符的指针(您可以删除const,它仅适用于编译器。修改字符串文字的内存是未定义的行为)。


推荐阅读