Я пробовал много предложений для решения этой проблемы без успеха.C++ Копирование из массива в массив
У меня есть массив const char длиной 1000, называемый 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*)'
Я потратил большую часть дня, просто пытаясь решить эту проблему; очевидно, я относительный новичок в этом.
Любые советы и предложения будут высоко оценены :)
С условием 'j <= 2000' в вашем цикле' for', вы собираетесь зацикливать одно время на многие. –
Я также думаю, что логика в вашей программе немного не работает. Прямо сейчас вы копируете первое слово во все 2000 (или 2001, если не изменяете свое состояние) записи массива. Затем вы копируете второе слово во все 2000 записей массива, перезаписывая первое слово. И так далее. И зачем использовать массив массивов? Почему бы не 'std :: vector'' std :: string'? –
лучше использовать std :: vector с push_back ... Тогда вам не нужно заботиться о размерах –
Mario