Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

26.11.2013, 00:25. Просмотров 463. Ответов 7
Метки нет (Все метки)

Как проверить в строке все вхождения символа и запомнить кусок строки между двумя его вхождениями?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 00:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как проверить в строке все вхождения символа? (C++):

Заменить все первые левые вхождения символа “a” на 00, а все правые вхождения символа “a” на 11 - C++
Заменить все первые левые вхождения символа “a” на 00, а все правые вхождения символа “a” на 11, остальные без изменений

Заменить в строке все множественные вхождения заданного символа одним - C++
Функция заменяет в строке все множественные вхождения заданного символа одним для использование нелбходимо использовать Указатели....

Подчеркнуть в строке все вхождения заданного символа, если такие там есть - C++
Дана строка и некий символ. Подчеркнуть в строке все вхождения заданного символа, если такие там есть. с++

Как в переменной строкового типа заменить все вхождения одного символа на другой? - C++
Подскажите как в переменной строкового типа заменить все вхождения одного символа на другой. Очень обрадуюсь ссылке или примеру кода...

Как с помощью цикла проверить все вхождения символов? - C++
Как с помощью цикла проверить все вхождения символов и если какой-то из символов входит более одного раза (изначально мы не знаем какой...

Поиск в строке первого вхождения указанного символа - ошибки - C++
Осуществить поиск в строке первого вхождения указанного символа. выдает большие числа . это правильно или нет? #include <string.h> ...

7
ssXXss
266 / 188 / 10
Регистрация: 15.01.2011
Сообщений: 681
26.11.2013, 00:32 #2
Цитата Сообщение от kobrjatina Посмотреть сообщение
Как проверить в строке все вхождения символа и запомнить кусок строки между двумя его вхождениями?
пересчитать вхождения и записать на листочек, после выбрать строку между двумя вхождениями и методом многократного повторения (можно вслух а можно и про себя ) запомнить кусок строки.)
0
zvoronz
271 / 239 / 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);
0
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);
а как это сделать на классическом Си, что бы попроще?
0
ssXXss
266 / 188 / 10
Регистрация: 15.01.2011
Сообщений: 681
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++;
    }
1
zvoronz
271 / 239 / 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';
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');
0
zvoronz
271 / 239 / 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);
1
26.11.2013, 01:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 01:05
Привет! Вот еще темы с ответами:

Поиск в заданной строке последнего вхождения заданного символа - C++
Помогите написать функцию, которая ищет в заданной строке последнее вхождение заданного символа (char *strrchr(const char *s1, int c)

После каждого вхождения символа «$» в строке вставлять подстроку «End» - C++
После каждого вхождения символа «$» в строке вставлять подстроку «End» Подсчитать число вставок.

Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) - C++
Задание: Осуществить поиск в строке первого вхождения указанного символа. #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include...

Все последующие вхождения символа заменить на заглавные - C++
Доброго времени суток. Столкнулся с проблемой написания программы к задаче: &quot;С клавиатуры вводится текст, либо набор символов в строку,...


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

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

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