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

Вывод части строки после определенного символа - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.93
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
07.10.2012, 23:58     Вывод части строки после определенного символа #1
Написал функцию:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream.h>
#include <string.h>
void main()
{
char stroka[100];
    cin>>stroka;
    char*primer;
    primer=strtok(stroka,"!");
    cout<<primer<<endl;
}
Я ввожу с клавиатуры любую строку, например qwert!yuiop, мне выводится qwert, то есть все в строке до символа '!'. Мне нужно что бы выводилось отдельно то что до ! и то что после. Возможно для этого существует какой нибудь оператор (оператор ? правильно ли это называть так ?), типа strtok ?
PS. вообще мне нужно часть строки до символа присвоить к одной переменной, а часть после - к другой переменной.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 23:58     Вывод части строки после определенного символа
Посмотрите здесь:

Вывод части строки C++
C++ Вывод всех символов строки, расположенных после первого символа ":"
C# C++ Задача поиск определенного символа в строке, запись того что после него в дргую строку C++
C++ Функция разбивает строку на две части: до первого вхождения заданного символа и после него
C++ Считать из файла от определенного символа(слова) до определенного символа(слова)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.10.2012, 00:00     Вывод части строки после определенного символа #2
Ещё раз strtok, но передаёте 0 первым аргументом. Эта функция вернёт 0, когда строка закончится.
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
08.10.2012, 00:02  [ТС]     Вывод части строки после определенного символа #3
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Ещё раз strtok, но передаёте 0 первым аргументом. Эта функция вернёт 0, когда строка закончится.
Можно пример ?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.10.2012, 00:08     Вывод части строки после определенного символа #4
К примеру:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
    char stroka[] = "ABC!DEF!GHI";
    char *primer = strtok(stroka, "!");
    do {
        cout << primer << endl;
    } while (primer = strtok(0, "!"));
}
Если только один раз разделить надо, то это так делается (не указываем разделитель):
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
    char stroka[] = "ABC!DEF!GHI";
    char *primer = strtok(stroka, "!");
    char *other = strtok(0, "");
    cout << primer << endl;
    cout << other << endl;
}
Только аккуратно, strtok рушит исходную строку.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.10.2012, 04:50     Вывод части строки после определенного символа #5
Цитата Сообщение от Alejo Посмотреть сообщение
PS. вообще мне нужно часть строки до символа присвоить к одной переменной, а часть после - к другой переменной.
Перебирайте строку по символам и помещайте символы в массив, пока не встретите нужный разделитель (в конец массива - '\0'). Оставшееся - в другой массив (в конец массива - '\0').
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.10.2012, 09:37     Вывод части строки после определенного символа #6
Именно это и делает strtok :) Только сразу же в исходном массиве, деля его на две строки.
Alejo
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 38
08.10.2012, 11:39  [ТС]     Вывод части строки после определенного символа #7
Спасибо, буду разбираться.
flerris
3 / 3 / 0
Регистрация: 17.08.2012
Сообщений: 145
08.10.2012, 11:45     Вывод части строки после определенного символа #8
Вы имеете ввиду как черех цикл это сделать? если да,то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Допустим я ввел abc!edf
#include <iostream.h>
#include <string.h>
void main()
{
char stroka[100];
    cin>>stroka;
for (int i=0;i<100;i++){
if(stroka[i]=='!')
{
cout<<"Da"<<endl;
}}
}
при каждом "!" будет выводиться Da
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2012, 21:28     Вывод части строки после определенного символа
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.10.2012, 21:28     Вывод части строки после определенного символа #9
flerris,
Цитата Сообщение от Alejo Посмотреть сообщение
PS. вообще мне нужно часть строки до символа присвоить к одной переменной, а часть после - к другой переменной.
Yandex
Объявления
08.10.2012, 21:28     Вывод части строки после определенного символа
Ответ Создать тему
Опции темы

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