【发布时间】:2018-09-27 03:21:49
【问题描述】:
我有一个 char* 数组,我想添加每两个连续索引并将其存储在另一个数组中。例如功能应该是这样的
char* wordsArray="The quick brown fox.";
char* array;
array=new char[size-1]; \\assume size is a declared variable
for(int i=0; i<size-1; i++)
array[i]=wordsArray[i]+wordsArray[i+1];
现在,数组的第一个索引将包含“The quick”,第二个索引包含“quick brown”,第三个索引包含“brown fox”。 这样做的正确方法是什么?
编辑:假设我们不能使用内置的 STL 类和算法(向量等)
【问题讨论】:
-
考虑到对字符数组的索引访问访问的是单个字符,而不是单词。如果你的逻辑单元是一个单词而不是字符,你必须先找到单词(有很多方法),或者从单词开始。
std::vector<std::string> sentence = {"The", "quick", "brown", "fox"}; -
次要注意:从 C++11 开始,
char* wordsArray="The quick brown fox.";是非法的。字符串文字,例如"The quick brown fox.",是常量字符数组。您不能将常量值分配给非常量指针,以防止有人尝试写入指向且可能无法更改的值时出错。