Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vanka16
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 21
#1

После пятого символа первой строки вставить вторую - C++

23.01.2013, 22:01. Просмотров 550. Ответов 5
Метки нет (Все метки)

Привет,помогите пожалуйста.У меня задание-есть две строки.Нужно после пятого символа первой строки,ввести вторую ,а после этого добавить остаток первой.Проблема в том,что остаток не записывается,и этот код не подходит для строк с пробелами;(
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 QCoreApplication a(argc, argv);
    int e=80;
    char s1[e],s2[e],s3[e];
    QTextStream cout(stdout);
    QTextStream cin(stdin);
  cout<<"Enter S"<<endl;
   cin>>s1;
   
  cin>>s2;
 
   for(int i =0; i<5; i++)
       s3[i]=s1[i];
   for(int i =0; i< strlen(s2); i++)
       s3[i+5]=s2[i];
   for(int i=5;i<strlen(s1)-5;i++)
       s3[i+strlen(s2)]=s1[i];
   cout<<s3<<endl;
 
     return a.exec();
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2013, 22:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос После пятого символа первой строки вставить вторую (C++):

После первой строки, содержащей минимальный элемент, вставить строку из нулей - C++
Дан двумерный массив А (n * m) После первой строки содержащей минимальный элемент вставить строку из нулевых элементов

Дан символ С и строки S, S0. После каждого вхождения символа С в строку S вставить S0 - C++
Дан символ С и строки S, S0. После каждого вхождения символа С в строку S вставить S0.

Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0 - C++
Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0. Помогите пожалуйста с реализацией на Си

Копирование первой половины строки во вторую - C++
Написать программу копирования первой половины, введенной строки, в другую строку. Заранее спасибо.

Создать строку: с начало три символа первой строки, потом эти же три символа в обратном порядке - C++
Помогите пожалуйста! Ввести строку символов. Создать новую строку следующим образом: с начало три символа первой строки, потом эти же три...

Как определенное слово из первой строки переписать во вторую? - C++
Даны две строки состоящие из слов. &quot;Добро побеждает зло&quot; &quot;Добро пожаловать домой&quot; Мне надо слово &quot;побеждает&quot; переписать во вторую...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,228
Записей в блоге: 3
Завершенные тесты: 1
24.01.2013, 16:52 #2
Как вариант(только без Qt):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstring>
 
int main(){
    const int n=1024;
    char str1[n],str2[n],str3[n+n];
    std::cout<<"Enter first string ->";
    std::cin.getline(str1,n);
    std::cout<<"Enter second string ->";
    std::cin.getline(str2,n);
    
 
    size_t pos=5;
    size_t len1=strlen(str1);
    size_t len2=strlen(str2);
    if(len1<pos) pos=len1;
    memcpy(str3,str1,sizeof(char)*pos);
    memcpy(str3+pos,str2,sizeof(char)*len2);
    memcpy(str3+pos+len2,str1+pos,sizeof(char)*(len1-pos+1));
    std::cout<<str3<<std::endl;
    return 0;
}
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
24.01.2013, 17:51 #3
А так пробовали? ))))
C++ (Qt)
1
2
3
QString str1 ="abra-kadabra";
QString str2="shvabra-";
str1.insert(5, str2);
vanka16
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 21
24.01.2013, 20:41  [ТС] #4
Цитата Сообщение от Croessmah Посмотреть сообщение
Как вариант(только без Qt):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstring>
 
int main(){
    const int n=1024;
    char str1[n],str2[n],str3[n+n];
    std::cout<<"Enter first string ->";
    std::cin.getline(str1,n);
    std::cout<<"Enter second string ->";
    std::cin.getline(str2,n);
    
 
    size_t pos=5;
    size_t len1=strlen(str1);
    size_t len2=strlen(str2);
    if(len1<pos) pos=len1;
    memcpy(str3,str1,sizeof(char)*pos);
    memcpy(str3+pos,str2,sizeof(char)*len2);
    memcpy(str3+pos+len2,str1+pos,sizeof(char)*(len1-pos+1));
    std::cout<<str3<<std::endl;
    return 0;
}
Да,это работает.Большое спасибо.Но всё же,не могли бы вы ответить мне-в чем ошибочка в моем алгоритме.И еще вопрос:функция GETLINE работает только если не объявлять QTEXTSTREAM cin(stdIn)?

Добавлено через 31 секунду
Цитата Сообщение от l_a_m Посмотреть сообщение
А так пробовали? ))))
C++ (Qt)
1
2
3
QString str1 ="abra-kadabra";
QString str2="shvabra-";
str1.insert(5, str2);
в задании идет речь только о работе с CHARом
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
25.01.2013, 09:39 #5
Цитата Сообщение от vanka16 Посмотреть сообщение
в задании идет речь только о работе с CHARом
тогда ноги в руки и в ветку С++ для начинающих!!! ибо тут идет обсуждение ТОЛЬКО Qt-a!
vanka16
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 21
25.01.2013, 18:04  [ТС] #6
Цитата Сообщение от l_a_m Посмотреть сообщение
тогда ноги в руки и в ветку С++ для начинающих!!! ибо тут идет обсуждение ТОЛЬКО Qt-a!
Форум программистов и сисадминов CyberForum.ru > Форум программистов > C++ > С++ для начинающих > После пятого символа первой строки вставить вторую. Вот путь к моей теме...или я чего-то не понимаю?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2013, 18:04
Привет! Вот еще темы с ответами:

Вставить после каждого символа «.» один символ « » (пробел), если после точки нет пробела. - C++
Вставить после каждого символа «.» один символ « » (пробел), если после точки нет пробела. Как сделать так, чтоб между точкой и...

Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить местоположение символа первой строки - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить местоположение символа первой строки, который первым не совпал с...

Заданы 2 строки, состоящие из слов, разделенных пробелами. Приписать три символа второй строки к первой - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Приписать три символа второй строки к первой. Поменять местами в измененной...

Строки. Определить местоположение символа первой строки, который первым совпал с одним из символов второй - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить местоположение символа первой строки, который первым совпал с одним...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.01.2013, 18:04
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru