我在C中有一个字符数组:
Array = {'7', '.', '8', '*', '3', '-', '4', '.', '5', '6', '+', '1', '0'}
上面是一个数学公式7.8 * 3 - 4.56 + 1
,在这里我已将每个字符存储为数组中的单个元素。
我正在尝试更改数组,以便十进制数是一个元素。因此,该数组应如下所示:
Array = {'7.8', '*', '3', '-', '4.56', '+', '1'}
如果有人可以向我展示如何清楚地做到这一点,我将不胜感激。
我是C的新手,所以如果这个问题不完整,我深表歉意。感谢您的任何事先帮助!
答案 0 :(得分:1)
C不支持字符串。您可以使用char数组来实现它们,例如:
#define MAX_SIZE 50
char expression[MAX_SIZE];
scanf("%s", expression); // input the expression from the user
主要问题是因为char绑定到1个字母,所以您无法在C中编写“ 7.5”。注意,为了限制数组长度,我使用了定义,您必须声明一个具有常数的数组。
如果要创建这样的数组:
Array = {'7.8', '*', '3', '-', '4.56', '+', '1'}
该数组将是char []的数组,它是:char [] []类型,是“字符串”的数组。
让我知道这是否对您有所帮助:)
答案 1 :(得分:1)
如果我对您的理解正确,那么您只需要:
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
,这仅适用于编译器。修改字符串文字的内存是未定义的行为)。 / p>