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

Как проверить в строке все вхождения символа? - C++

Восстановить пароль Регистрация
 
kobrjatina
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 52
26.11.2013, 00:25     Как проверить в строке все вхождения символа? #1
Как проверить в строке все вхождения символа и запомнить кусок строки между двумя его вхождениями?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 00:25     Как проверить в строке все вхождения символа?
Посмотрите здесь:

C++ Поиск в заданной строке последнего вхождения заданного символа
Заменить в строке все множественные вхождения заданного символа одним C++
Как в переменной строкового типа заменить все вхождения одного символа на другой? C++
C++ Поиск в строке первого вхождения указанного символа - ошибки
Как с помощью цикла проверить все вхождения символов? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
26.11.2013, 00:32     Как проверить в строке все вхождения символа? #2
Цитата Сообщение от kobrjatina Посмотреть сообщение
Как проверить в строке все вхождения символа и запомнить кусок строки между двумя его вхождениями?
пересчитать вхождения и записать на листочек, после выбрать строку между двумя вхождениями и методом многократного повторения (можно вслух а можно и про себя ) запомнить кусок строки.)
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
26.11.2013, 00:34     Как проверить в строке все вхождения символа? #3
Между двумя какими уточните. Если между крайними то вот так
C++
1
str2 = str.substr(f = str.find_first_of('f'), str.find_last_of('f') - f);
kobrjatina
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 52
26.11.2013, 00:35  [ТС]     Как проверить в строке все вхождения символа? #4
по-моему я помощи прошу, а не насмешек

Добавлено через 1 минуту
Цитата Сообщение от zvoronz Посмотреть сообщение
Между двумя какими уточните. Если между крайними то вот так
C++
1
str2 = str.substr(f = str.find_first_of('f'), str.find_last_of('f') - f);
а как это сделать на классическом Си, что бы попроще?
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
26.11.2013, 00:45     Как проверить в строке все вхождения символа? #5
Цитата Сообщение от kobrjatina Посмотреть сообщение
по-моему я помощи прошу, а не насмешек
ну каков вопрос таков ответ
Цитата Сообщение от kobrjatina Посмотреть сообщение
а как это сделать на классическом Си, что бы попроще?
подсчет количества вхождения символа :
C++
1
2
3
4
5
6
7
8
9
char str[] = "qergergregrregergreg";
    char ch = 'e';
    int l = strlen(str);
    int count = 0;
    for(int i = 0;i < l;i++)
    {
        if(str[i] == ch)
            count++;
    }
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
26.11.2013, 00:47     Как проверить в строке все вхождения символа? #6
На классическом как раз не проще будет.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int ffi = -1, fli = -1;
 
for(int i = 0; i < strlen(buf); ++i)
    if(buf[i] == 'f')
    {
        ffi = i;
        break;
    }
for(int i = strlen(buf)-1; i >= 0; --i)
    if(buf[i] == 'f')
    {
        fli = i;
        break;
    }
int p = 0;
for(int i = ffi+1; i < fli-1; ++i)
    buf2[p++] = buf[i];
buf2[p] = '0';
kobrjatina
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 52
26.11.2013, 00:53  [ТС]     Как проверить в строке все вхождения символа? #7
Цитата Сообщение от zvoronz Посмотреть сообщение
На классическом как раз не проще будет.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int ffi = -1, fli = -1;
 
for(int i = 0; i < strlen(buf); ++i)
    if(buf[i] == 'f')
    {
        ffi = i;
        break;
    }
for(int i = strlen(buf)-1; i >= 0; --i)
    if(buf[i] == 'f')
    {
        fli = i;
        break;
    }
int p = 0;
for(int i = ffi+1; i < fli-1; ++i)
    buf2[p++] = buf[i];
buf2[p] = '0';
а не получится как-то с использованием strchr и strrchr? вот есть кусок программы, который запоминает часть строки от первого вхождения символа "с" и до конца строки. Что дописать, что бы в конце выводило на экран часть строки от первого вхождения "с" до следующего "с"?
C++
1
2
3
4
char str [50];
    strcpy (str, "12cb3a4c5");
    char* pStr;
    pStr = strchr (str, 'c');
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 01:05     Как проверить в строке все вхождения символа?
Еще ссылки по теме:

Подчеркнуть в строке все вхождения заданного символа, если такие там есть C++
Заменить все первые левые вхождения символа “a” на 00, а все правые вхождения символа “a” на 11 C++
C++ После каждого вхождения символа «$» в строке вставлять подстроку «End»

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

Или воспользуйтесь поиском по форуму:
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
26.11.2013, 01:05     Как проверить в строке все вхождения символа? #8
C
1
2
3
4
char str [50], str2[50]="";
strcpy (str, "12cb3a4c5");
char* pStr;
memcpy(str2, pStr = strchr (str, 'c') + 1, strrchr(str, 'c') - pStr);
Yandex
Объявления
26.11.2013, 01:05     Как проверить в строке все вхождения символа?
Ответ Создать тему
Опции темы

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