从一个数组复制到另一个数组
C++ Copying from an array to an array
对于这个问题,我已经尝试了很多建议的解决方案,但都没有成功。
我有一个长度为1000的const char数组,名为english_line,其中包含以空格分隔的单词。这个数组被传递给一个函数。根据我们的任务概要,必须使用此函数来实现解决方案。
我想复制数组的内容,一次一个单词到另一个2D数组,temp_eng_word
char temp_eng_word[2000][50];
int j;
string line = english_line;
string word;
istringstream iss(line, istringstream::in);
while (iss >> word)
{
for (j=0;j<=2000;j++)
{
strcpy(temp_eng_word[j],word);
}
}
当我运行这个,我得到错误:
cannot convert 'std::string* *{aka std::basic_string(char)}' to 'const char*' for argument '2' to 'char* strcpy(char*, const char*)'
我花了一天的大部分时间来做这个问题;显然,在这方面我还是个新手。
任何提示或建议都将非常感谢:)
使用word.c_str()
从std::string
中获得const char*
另外,我不明白你嵌套的for
循环的点,你可能想做这样的事情(使用strncpy
复制最多49个char
与零填充,如果需要,并确保字符串的最后一个char
是总是零):
istringstream iss(line, istringstream::in);
int nWord = 0;
while( (nWord < 2000) && (iss >> word) )
{
strncpy(temp_eng_word[nWord], word.c_str(), 49);
temp_eng_word[nWord][49] = ' '; /* if it's not already zero-allocated */
++nWord;
}
请注意,使用std::vector<std::string>
来存储您的单词会更简单:
vector<string> words;
istringstream iss(line, istringstream::in);
while(iss >> word)
{
words.push_back(word);
}
可以不用使用std::copy
:
copy(istream_iterator<string>(iss), istream_iterator<string>(), back_inserter(words));
1)循环计数错误(你应该纠正你的数组知识)
2) string::c_str()将std::string转换为char*
注意字符串和字符数组之间的区别。字符数组是一种简单的基本数据类型结构,而字符串实际上是一个具有更复杂结构的类。这就是为什么您需要使用字符串的c_str()
函数来获取内容为char数组(也称为C-string)。
您还应该注意到c_str()
在其输出数组的末尾添加了空终止(附加字符' '
)。
您可以使用string
而不是temp_eng_word
数组。如,
std::string temp_eng_word;
希望这将解决您的问题。这个循环是不正确的。请检查,因为您使用的是二维数组
相关文章:
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 将字符数组复制到 QByte 数组中,而无需传递指针
- std::transform 将一个结构数组复制到另一个结构数组
- 如何使用指针C++将元素从2D数组复制到1D数组
- 如何将 int4 数组复制到 int8 向量中
- 如何将多维字符数组复制到字符 * 中
- std::将三维数组复制到三维向量中
- 为什么我不能将 C 样式数组复制到 std::array?
- 有没有办法将最初作为字符串输入的数字字符数组复制到双向链表中
- 为什么当我想将(使用 memcpy)结构数组复制到字符数组时,字符数组为空
- 如何将数据从数组复制到C++特征矩阵或向量
- 将数组复制C++作为特征矩阵的向量
- 如何在 c++ 中将数组复制到文件
- 如何将对象数组作为构造函数中的参数传递,然后将传递的数组复制到另一个数组(仍在构造函数中)
- CUDA 将大于线程计数的数组复制到共享内存
- 可以使用 std::copy 将 3D 数组复制到矢量
- 如何在C++中将本地字符串数组复制到私有成员字符串数组
- 如何使用 std::copy 将一个 constexpr 数组复制到另一个 constexpr 数组
- 如何将 char 类型数组传递给函数并将第一个字符数组复制到第二个图表数组并使用 c++ 进行比较