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

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

Восстановить пароль Регистрация
 
vanka16
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 21
23.01.2013, 22:01     После пятого символа первой строки вставить вторую #1
Привет,помогите пожалуйста.У меня задание-есть две строки.Нужно после пятого символа первой строки,ввести вторую ,а после этого добавить остаток первой.Проблема в том,что остаток не записывается,и этот код не подходит для строк с пробелами;(
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++
C++ Заданы 2 строки. Определить местоположение символа первой строки, который первым не совпал с одним из символов второй
C++ Строки. Определить местоположение символа первой строки, который первым совпал с одним из символов второй
C++ Определить местоположение символа первой строки, который первым не совпал с одним из символов второй строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11840 / 6819 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 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
Эксперт С++
 Аватар для Maxim Prishchepa
1875 / 987 / 61
Регистрация: 29.03.2010
Сообщений: 2,983
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
Эксперт С++
 Аватар для Maxim Prishchepa
1875 / 987 / 61
Регистрация: 29.03.2010
Сообщений: 2,983
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++ > С++ для начинающих > После пятого символа первой строки вставить вторую. Вот путь к моей теме...или я чего-то не понимаю?
Yandex
Объявления
25.01.2013, 18:04     После пятого символа первой строки вставить вторую
Ответ Создать тему
Опции темы

Текущее время: 21:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru