Питання по string в мові с++ продублювати кожну букву призвіща (вводиться з клавіатури ) потрібно зробити задачу 2 способами Використовуючи функції бібліотеки і розглядаючи рядок як масив
Ответы
Ответ:
Задача полягає у подвоєнні кожної букви в рядку. Ось два способи розв'язання цієї задачі в С++:
1. Використовуючи функції бібліотеки:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string surname;
cout << "Enter your surname: ";
cin >> surname;
string duplicated_surname = "";
for (char c : surname) {
duplicated_surname += c;
duplicated_surname += c;
}
cout << "Duplicated surname: " << duplicated_surname << endl;
return 0;
}
У цьому варіанті ми використовуємо функцію std::string::operator+=, яка додає символ до кінця рядка.
2. Розглядаючи рядок як масив:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char surname[100];
cout << "Enter your surname: ";
cin >> surname;
int n = strlen(surname);
char duplicated_surname[200];
int j = 0;
for (int i = 0; i < n; i++) {
duplicated_surname[j++] = surname[i];
duplicated_surname[j++] = surname[i];
}
duplicated_surname[j] = '\0';
cout << "Duplicated surname: " << duplicated_surname << endl;
return 0;
}
У цьому варіанті ми використовуємо функцію std::strlen, яка повертає довжину рядка. Для створення нового рядка з подвоєними буквами ми проходимо по кожній букві в оригінальному рядку і додаємо її двічі до нового рядка, використовуючи змінну j для відстеження поточної позиції в новому рядку. В кінці ми додаємо нуль-термінатор до нового рядка, щоб він став коректним рядком у стилі C.
Объяснение: