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

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

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

Разбить исходную строку на две подстроки - C++

27.03.2014, 19:31. Просмотров 1019. Ответов 7
Метки нет (Все метки)

Здравствуйте форумчане, пытаюсь решить задание с использованием строк, но не выходит. Учителя временно нету, хотелось бы услышать ваш совет.
 Комментарий модератора 
Задания надо переписывать в тело сообщения!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 19:31     Разбить исходную строку на две подстроки
Посмотрите здесь:
C++ Разбить исходную строку на две подстроки, причем первая длиной k символов
C++ нужно разбить исходную строку на две подстроки , причём первая длинной k
C++ Разбить исходную строку на максимальной длины подстроки
Разбить строку на все "связные" подстроки. Получившиеся подстроки записать в вектор C++
C++ Разбить строку string на подстроки
C++ Разделить строку на две подстроки.
Мне надо сделать поиск последнего вхождения подстроки s1 в строку s(с функцией LastPos, не strstr). В этом коде просто вхождение подстроки в строку. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
STRj
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 32
28.03.2014, 11:19  [ТС]     Разбить исходную строку на две подстроки #2
Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Разбить исходную строку на две подстроки, причем первая длиной k символов (если k-ю позицию попадает слово, то его следует отнести ко второй строке.)
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
28.03.2014, 11:51     Разбить исходную строку на две подстроки #3
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
int main(int argc, char* argv[])
{
    std::string str = "asdfasdgfds dsgads gdas ghadfs hads";
    int k = 0;
    cin>>k;
    
    int pos = k;
    if(k < str.length() && str[k-1] != ' ')
    {
        for(int i = k-1; i >=0; i--)
        {
            if(str[i] == ' ')
            {
                break;
            }
            else
            {
                pos --;
            }
        }
    }
    std::string sub1, sub2;
    if(pos < str.length())
    {
        sub1 = str.substr(0, pos);
        sub2 = str.substr(pos, str.length());
    }
    else
    {
        sub1 = str;
    }
    cout<<sub1<<endl;
    cout<<sub2<<endl;
    system("pause");
    return 0;
}
STRj
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 32
29.03.2014, 12:42  [ТС]     Разбить исходную строку на две подстроки #4
aLarman, а возможно другое решение? Не используя length,pos.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
29.03.2014, 17:19     Разбить исходную строку на две подстроки #5
ну со стрингом можно работать как с массивом, можно руками искать все и копировать из 1ой строки в другие
STRj
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 32
05.04.2014, 16:11  [ТС]     Разбить исходную строку на две подстроки #6
Задача актуальна.
IrineK
Заблокирован
05.04.2014, 16:16     Разбить исходную строку на две подстроки #7
Дайте свое решение или хотя бы наброски, чтобы можно было понять как вам помочь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2014, 16:26     Разбить исходную строку на две подстроки
Еще ссылки по теме:
Написать функцию, которая формирует строку, состоящую только из цифр, входящих в исходную строку C++
Разделить исходную строку на несколько строк длины K C++
В исходную строку добавьте после каждого символа его номер по порядку в алфавите C++
C++ Функция, определяющая позицию самого первого вхождения заданного символа в исходную строку
В исходную строку добавьте после каждого символа его номер по порядку в алфавите C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
05.04.2014, 16:26     Разбить исходную строку на две подстроки #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от STRj Посмотреть сообщение
а возможно другое решение? Не используя length,pos.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
 
int main()
{
    string str = "word1 word2 word3";
    stringstream ss(str);
    while(ss>>str)
        cout<<str<<endl;
    return 0;
}
http://codepad.org/DKSNigcH
Output:
word1
word2
word3
Yandex
Объявления
05.04.2014, 16:26     Разбить исходную строку на две подстроки
Ответ Создать тему
Опции темы

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