Проблема с дублированием строки c и сохранением в новом массиве символов - PullRequest
0 голосов
/ 14 июля 2020

Мы практикуемся в создании наших собственных строковых функций, и мне трудно понять, как правильно сохранить дублированный вывод в newString. Я могу распечатать желаемые результаты, но как мне сохранить их в newString?

void  duplicateString(char newString [], int howManyTotal){
   
    for ( int i = 0; i < howManyTotal* myStrlen(newString); i++){
       
      cout <<  newString[i % myStrlen(newString)];     
}
}

Вывод:

Введите слово: cat

Длина этого слова: 3

кот без гласных: ct

Введите количество дубликатов, которое нужно сделать: 3

ctctct

"ctctct" - это то, что мне трудно понять, как сохранить его в newString

1 Ответ

1 голос
/ 14 июля 2020

Если вы можете изменить тип возвращаемого значения функции, вы можете выделить память для строки и назначить ее с помощью for l oop, созданного вами для печати результата.

char*  duplicateString(char newString [], int howManyTotal){
    char* duplicatedstring = new char[howManyTotal*myStrlen(newString)];
    for ( int i = 0; i < howManyTotal* myStrlen(newString); i++)
       duplicatedstring[i] = newString[i % myStrlen(newString)];
    return duplicatedstring;
}

Do не забудьте удалить [] его после использования!

...