我用strtok
标记了一个数组。我想将strtok返回的char指针存储到数组中。
char exp[] = {"1000 + 1000"};
char operands[50];
p = strtok(exp, " ");
现在,我想将p的值(即1000)存储到操作数[i]数组中。我这样尝试过:
memcpy(&operands[i], p, 49);
但是它只复制一个整数。
最佳答案
我猜您实际上并不想将p
指向的字符串复制到字符数组operands
中。相反,在我看来,您希望operands
是指向char
的指针的数组,即
char *operands[50];
那你就可以做
operands[i] = p;
(注意:
i
必须是有效索引,范围为0 但是,以上是C问题的C解决方案。如果您使用C++进行编程,则可能应该使用
std::string
和 std::vector
代替:std::vector<std::string> operands;
...
operands.push_back(p);
当然,如果您使用C++进行编程,则完全不应使用字符数组和
strtok
,而应使用C++ standard library中的功能进行标记化。