Мне нужно написать программу, которая предложит пользователю ввести строку, затем определить середину строки и сгенерировать новую строку, которая свопирует две половины строки и затем выводит результаты.Как разбить массив с помощью строк?
До сих пор я
int main(void) {
char *string = NULL;
char temp[1000];
cout << "Please enter a string" << endl;
cin.getline(temp, 999);
int length = strlen(temp);
string = new char[length];
strcpy(string,temp);
length = length/2;
return EXIT_SUCCESS;
}
Который берет в строку и сохраняет ее. Мне просто нужен способ переместить эту вторую половину в новый массив, и я знаю, что мне нужно использовать strcpy(), но я не знаю, как правильно ссылаться на эту часть массива.
Посмотрите на [strncpy] (http://en.cppreference.com/w/cpp/string/byte/strncpy). Тем не менее, вы должны попытаться использовать 'std :: string' вместо этого и стандартные алгоритмы. – vsoftco
Есть ли способ заставить strncpy начать принимать массив после n? или он будет делать только до n? – Tremors
Прежде чем вы начнете выяснять алгоритм, вы можете исправить очевидную ошибку в показанном коде, которая приведет к неопределенному поведению, повреждению памяти и случайным сбоям (подсказка: strlen() не считает конечный «\ 0» что strcpy() добавляет). –