C/C++

Программирование на c++

Помогите пожалуйста решить задачку
1.Даны три слова (каждое содержит от 3 до 30 символов). Требуется создать новое слово, включающее в себя по 3 первых символа данных слов. ВАЖНО Для хранения использовать Си-строки. Исходные строки должны остаться неизменными.

Пример:

Ввод; Вывод;
volcano voldemort
demon
orthogon
 #include 
#include

using namespace std;

int main() {
const size_t N = 30;
char s1[N+1], s2[N+1], s3[N+1];
char result[10];
cin.getline(s1, N)
.getline(s2, N)
.getline(s3, N);
strncpy(result, s1, 3);
strncpy(result + strlen(result), s2, 3);
strncpy(result + strlen(result), s3, 3);
cout
Казбек Акмалиев
Казбек Акмалиев
12 815
Лучший ответ
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
char word1[30], word2[30], word3[30], newWord[9];

cout << "Enter first word: ";
cin >> word1;
cout << "Enter second word: ";
cin >> word2;
cout << "Enter third word: ";
cin >> word3;

strncpy(newWord, word1, 3);
strncpy(newWord + 3, word2, 3);
strncpy(newWord + 6, word3, 3);
newWord[9] = '\0';

cout << "New word: " << newWord << endl;

return 0;

}

/*
Ввод:
volcano
voldemort
demon

Вывод:
New word: volvodemo
*/

В данном коде мы считываем три слова с клавиатуры с помощью функции cin. Затем используем функцию strncpy() для создания нового слова, которая копирует первые 3 символа каждого слова в новое слово.
Еркебулан Калаубаев а если пишут " недостаточный размер массива, используется память за ним." что можно сделать?
Примерно так:
 #include  
#define BUF_SIZE 10
//-------------------------------------------------------------------
// Выводит в буфер buf три байта из src, начиная с текущей позиции pos
void to_buf( char* buf, size_t buf_size, size_t& pos, const char* src );
//-------------------------------------------------------------------

//-------------------------------------------------------------------
const char* words[] =
{
"volcano",
"demon",
"orthogon"
};
//-------------------------------------------------------------------

//-------------------------------------------------------------------
int main()
{
char buf[BUF_SIZE];
size_t pos = 0;
for( auto& w:words )
{
to_buf( buf, BUF_SIZE, pos, w );
}
std::cout
 #include  
#include

using namespace std;

int main() {
char word1[31], word2[31], word3[31];

cout
RA
Ramal Agaverdiyev
1 192