Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
FrankyMO
0 / 0 / 2
Регистрация: 28.06.2013
Сообщений: 90
#1

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

17.01.2014, 00:25. Просмотров 1177. Ответов 9
Метки нет (Все метки)

8.5.1.

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

Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него.
http://www.cyberforum.ru/cpp-beginners/thread1686225.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 00:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него (C++):

Функция разбивает строку на две части: до первого вхождения заданного символа и после него
Программу написал но не очень понятно как без цстринг (а это в условии, что...

Вывод части строки до определенного символа и после него
в чем суть, передо мной появилась задача: нужно написать программу которая...

Функция, определяющая позицию самого первого вхождения заданного символа в исходную строку
Прошу помочь решить задачки!:(очень нужно (Билет №25) Составить функцию,...

Написать функцию разбиения строки s пополам на две строки s1 и s2
Написать функцию разбиения строки s пополам на две строки s1 и s2 Сделал в...

Удалить из строки все вхождения заданного символа
12. Преобразовать заданную строку следующим образом: удалить из строки все...

9
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 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;
}
1
FrankyMO
0 / 0 / 2
Регистрация: 28.06.2013
Сообщений: 90
17.01.2014, 21:57  [ТС] #3
Помогите, пожалуйста, решить задачу в С++.

Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него.
0
cooller
565 / 533 / 280
Регистрация: 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;
 
}
1
Ev[G]eN
iOS/Android Developer
Эксперт С++
5115 / 1553 / 950
Регистрация: 23.01.2011
Сообщений: 3,179
Завершенные тесты: 1
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;
}
1
cooller
565 / 533 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
17.01.2014, 23:49 #6
Ev[G]eN, STL только начал осваивать) так что иногда не все идеально
0
Ev[G]eN
17.01.2014, 23:52
  #7

Не по теме:

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

0
VaDiG
30 / 27 / 18
Регистрация: 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;
}
1
Ev[G]eN
iOS/Android Developer
Эксперт С++
5115 / 1553 / 950
Регистрация: 23.01.2011
Сообщений: 3,179
Завершенные тесты: 1
18.01.2014, 11:22 #9
Цитата Сообщение от FrankyMO Посмотреть сообщение
до первого вхождения заданного символа
VaDiG,
Цитата Сообщение от VaDiG Посмотреть сообщение
string str, str2, str3, buf;
Цитата Сообщение от VaDiG Посмотреть сообщение
getline(cin, buf);
написано "символа"..зачем вводить целую строку?
0
VaDiG
30 / 27 / 18
Регистрация: 13.01.2014
Сообщений: 63
18.01.2014, 14:50 #10
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
VaDiG,

написано "символа"..зачем вводить целую строку?
так ты можешь ввести любой разделитель. никто тебе не мешает ввести символ и не заставляет вводить строку...
0
18.01.2014, 14:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2014, 14:50
Привет! Вот еще темы с решениями:

Строки: найти порядковые номера первого и последнего вхождения символа x
Разработать программу, которая для заданной строки s: находит порядковые...

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

Сформировать новую строку, вставив пробел после каждого вхождения заданного символа
Дана строка символов и некоторый символ n. Сформируйте новую строку, вставив...

Из строки получить новую, выбросив все вхождения заданного символа (Работа со строками)
Доброго времени суток =) Нужна помощь с заданием: &quot;Из заданной строки получить...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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