Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 12
1

Как объединить 2 строки (string) в одну, или вывести их без пробелов

30.11.2014, 14:40. Показов 1562. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В задаче нужно поменять местами левую и правую часть слова:
kola -> lako
kolya -> yalko
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <iostream>
#include <cstring>
#include <string>
 
using namespace std;
 
int main(void)
{
string s,s2,s3;
getline (cin,s);
int g=s.length();
if (g%2==0)
{
    for (int i = 0; i < s.length()/2; i++)
    {
        s2 += s[i];
    }
    for (int i = s.length()/2; i <= s.length(); i++)
    {
        s3 += s[i];
    }
cout << s3+s2;
}
if (g%2==1)
{
    for (int i = 0; i < s.length()/2; i++)
    {
        s2 += s[i];
    }
    for (int i = s.length()/2+1; i <= s.length(); i++)
    {
        s3 += s[i];
    }
cout << s3+s[s.length()/2]+s2;
}
return 0;
}
И все правильно работает.. однако строки он выводит через пробелы, а если сделать из них строки вида char[], то другие команды не сработают. Как убрать пробелы при выводе?

Добавлено через 3 минуты
Попробовал
C++
1
2
string s4 = s3 + s2;
s4.erase(s4.find(' '), 1);
Однако такая штука может удалить и другие пробелы, а нужен только тот, который между s3 и s2.

Добавлено через -10 минут
Справился, нужно было учесть, что i начинается с 0, а s.length c 1, отсюда и появились эти пробелы... Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <iostream>
#include <cstring>
#include <string>
 
using namespace std;
 
int main(void)
{
string s,s2,s3;
getline (cin,s);
int g=s.length();
if (g%2==0)
{
    for (int i = 0; i < s.length()/2; i++)
    {
        s2 += s[i];
    }
    for (int i = s.length()/2; i <= s.length()-1; i++)
    {
        s3 += s[i];
    }
cout << s3+s2;
}
if (g%2==1)
{
    for (int i = 0; i < s.length()/2; i++)
    {
        s2 += s[i];
    }
    for (int i = s.length()/2+1; i <= s.length()-1; i++)
    {
        s3 += s[i];
    }
cout << s3+s[s.length()/2]+s2;
}
 
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2014, 14:40
Ответы с готовыми решениями:

Вывод строки пробелов без переноса, или как обойти спецсимволы?
Написал код вывода дерева папок наподобие tree. Все вроде работает, но вывод пробелов без переноса...

Объединить строки без использования string.h
Чем заменить strcpy ,strcat .

Вывести в одну строку без пробелов все нечётные числа от 1 до N
На вход подаётся натуральное число N (не более 100). Вывести в одну строку без пробелов все...

Вывести в одну строку без пробелов ряд из пар цифр 3535353535
На вход подаётся чётное число N (не более 100). Вывести в одну строку без пробелов ряд из пар цифр...

0
30.11.2014, 14:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2014, 14:40
Помогаю со студенческими работами здесь

Объединить три строки в одну и вывести на экран
Помогите пожалуйста решить 3. Объединить три строки в одну и вывести на экран.

Преобразовать числа в две строки, объединить их в одну строку и вывести на экран результат
ввести 2 целых числа.преобразовать числа в две строки,объединить их в одну строку и вывести на...

Вывести исходную строку без лишних пробелов и символов переноса строки
Напишите программу, которая удаляет лишние пробелы - в начале строки не может быть пробелов, как и...

Как объединить три char строки одну?
Мне конечно говорили, что c++ не прост в постижение, но не настолько же... У меня банальная...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru