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

Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него - C++

Восстановить пароль Регистрация
 
FrankyMO
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 90
17.01.2014, 00:25     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него #1
8.5.1.

Помогите, пожалуйста, решить задачу в С++.

Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 00:25     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него
Посмотрите здесь:

Удалить из строки все вхождения заданного символа C++
C++ Вывод части строки после определенного символа
C++ Функция, определяющая позицию самого первого вхождения заданного символа в исходную строку
C++ Функция разбивает строку на две части: до первого вхождения заданного символа и после него
C++ Из строки получить новую, выбросив все вхождения заданного символа (Работа со строками)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
17.01.2014, 11:40     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него #2
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
#include <iostream>
#include <cstring>
 
int main()
{
    const int maxLength = 128;
    char str[maxLength],part1[maxLength],part2[maxLength];
    std::cout <<"String: ";
    std::cin.getline(str,maxLength);
    char symbol;
    std::cout <<"Symbol: ";
    std::cin >> symbol;
    int i = 0;
    while (str[i]!=symbol)
        part1[i] = str[i++];
    part1[i] = str[i++];
    part1[i] = '\0';
    int part1Length = strlen(part1);
    while (str[i])
        part2[i-part1Length] = str[i++];
    part2[i-part1Length] = '\0';
    std::cout <<part1 <<'\n' <<part2 <<std::endl;
    return 0;
}
FrankyMO
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 90
17.01.2014, 21:57  [ТС]     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него #3
Помогите, пожалуйста, решить задачу в С++.

Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
17.01.2014, 22:18     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него #4
FrankyMO,
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
#include "stdafx.h"
#include <iostream>
#include<vector>
#include<iterator>
#include<string>
 
int main()
{
    std::string str;
    std::cout<<"Enter string:";
    std::getline(std::cin,str);
    std::cout<<"Enter symbol:";
    char sym;
    std::cin>>sym;
    std::vector <char> SymbolTo,SymbolAfter;
    int pos(-1);
    for(int i=0;str[i]!=sym;i++)
    {
        SymbolTo.push_back(str[i]);
        pos = i;
    }
    for(int i=pos + 2;i<str.length();i++)
        SymbolAfter.push_back(str[i]);
 
    std::copy(SymbolTo.begin(),SymbolTo.end(),std::ostream_iterator<char> (std::cout));
    std::cout<<std::endl;
    std::copy(SymbolAfter.begin(),SymbolAfter.end(),std::ostream_iterator<char> (std::cout));
    system("pause");
    return 0;
 
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
17.01.2014, 23:41     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него #5
cooller_94, зачем здесь вектора? опять же, ИМХО
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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
 
int main()
{
    std::string userString;
    std::cout << "Input the string: " << std::endl;
    std::getline(std::cin, userString);
 
    char symbol;
    std::cout << "Symbol: ";
    std::cin >> symbol;
 
    size_t firstInsert(userString.find_first_of(symbol) + 1);
    std::cout << "First part of the string: " << std::endl;
    std::copy(userString.begin(), userString.begin() + firstInsert, std::ostream_iterator <char>(std::cout));
    std::cout << std::endl << "Second part of the string: " << std::endl;
    std::copy(userString.begin() + firstInsert, userString.end(), std::ostream_iterator <char>(std::cout));
    
    std::system("pause >> temp");
    return 0;
}
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
17.01.2014, 23:49     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него #6
Ev[G]eN, STL только начал осваивать) так что иногда не все идеально
Ev[G]eN
17.01.2014, 23:52
  #7

Не по теме:

в любом случае - не воспринимайте как оскорбление

VaDiG
 Аватар для VaDiG
29 / 26 / 3
Регистрация: 13.01.2014
Сообщений: 63
18.01.2014, 03:04     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него #8
FrankyMO,
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
#include <iostream>
#include <string>
 
using namespace std;
 
int main ()
{
    setlocale(0, "");
    string str, str2, str3, buf;
    
    cout << "Введите строку: ";
    getline(cin, str);
 
    cout << "Введите разделитель: ";
    getline(cin, buf);
    
    unsigned pos = str.find(buf);
    str2 = str.substr (0,pos);
    str3 = str.substr (pos); 
 
    cout << "Часть первая: " << str2 << "\nЧасть вторая: " << str3 << endl;
                                           
    system("pause");
    return 0;
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
18.01.2014, 11:22     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него #9
Цитата Сообщение от FrankyMO Посмотреть сообщение
до первого вхождения заданного символа
VaDiG,
Цитата Сообщение от VaDiG Посмотреть сообщение
string str, str2, str3, buf;
Цитата Сообщение от VaDiG Посмотреть сообщение
getline(cin, buf);
написано "символа"..зачем вводить целую строку?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2014, 14:50     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него
Еще ссылки по теме:

Дан символ С и строки S, S0. После каждого вхождения символа С в строку S вставить S0 C++
C++ Строки: найти порядковые номера первого и последнего вхождения символа x
Написать программу добавления слова «hello» после первого слова введенной строки C++

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

Или воспользуйтесь поиском по форуму:
VaDiG
 Аватар для VaDiG
29 / 26 / 3
Регистрация: 13.01.2014
Сообщений: 63
18.01.2014, 14:50     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него #10
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
VaDiG,

написано "символа"..зачем вводить целую строку?
так ты можешь ввести любой разделитель. никто тебе не мешает ввести символ и не заставляет вводить строку...
Yandex
Объявления
18.01.2014, 14:50     Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него
Ответ Создать тему
Опции темы

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