Помогите пожалуйста решить задачку
1.Даны три слова (каждое содержит от 3 до 30 символов). Требуется создать новое слово, включающее в себя по 3 первых символа данных слов. ВАЖНО Для хранения использовать Си-строки. Исходные строки должны остаться неизменными.
Пример:
Ввод; Вывод;
volcano voldemort
demon
orthogon
C/C++
Программирование на c++
#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
#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 <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
Похожие вопросы
- Программирование на C++
- Программирование на C++
- Помоги написать лабу по программированию на c++
- Помогите решить задачу по программированию на C++
- Программирование на C. Помогите бездарю
- На каком языке программирования написан C (Си)?
- Программирование на c++
- Программирование на C++
- Помогите с программированием на C++
- Задание по программированию язык C/СИ