Как найти определенный символ в строке с
Перейти к содержимому

Как найти определенный символ в строке с

  • автор:

Найти индекс символа в строке в C++

В этом посте мы обсудим, как найти индекс символа в строке на C++.

1. Использование string::find

The string::find функция-член возвращает индекс первого вхождения указанного символа в строку или string::npos если персонаж не найден. В следующем примере показан вызов этой функции:

std :: string s = «C++20» ;
int index = s . find ( c ) ;
if ( index != std :: string :: npos ) < std :: cout << "Character found at index " << index << std :: endl ; std :: cout << "Character not found" << std :: endl ;

результат:

Character found at index 1

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

std :: string s = «C++20» ;
auto it = std :: find ( s . begin ( ) , s . end ( ) , ‘+’ ) ;
if ( it != s . end ( ) ) < int index = std :: distance ( s . begin ( ) , it ) ; std :: cout << "Character found at index " << index << std :: endl ; std :: cout << "Character not found" << std :: endl ;

результат:

Character found at index 1

2. Использование std::string_view

C++17 позволяет формировать строковое представление символьного литерала, используя std::literals::string_view_literals::operator""sv, заявлено в шапке . Получив строковое представление, мы можем использовать find() функция, чтобы получить позицию первого символа данной последовательности символов, или std::string::npos если он не найден. Например,

С++ Найти символ в строке

Задача:напишите программу,подсчитывающую количество определённой буквы в строке.строка и буква вводится пользователем.
сам мучаюсь третий день не могу понять как сделать нормально.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Функция принимает блоки данных (символ1, символ 2, строка), в каждой строке заменять символ 1 на символ 2
функция принимает блоки данный(символ1, символ 2 , строка), в каждом строке заменять символ 1 на.

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

Найти символ в строке
Переменная <?$primer=test@test.ru?> Как найти и вывести символ @ ? Так не получается: .

Найти символ в строке
Как найти наиболее часто встречающийся символ в строке? Строка дана изначально. Желательно на.

Нахождение позиции символа в строке

Есть строка, в ней нужно найти символ ‘=’ и записать его позицию в переменную. Какие существуют решения?

Отслеживать
4,169 1 1 золотой знак 27 27 серебряных знаков 41 41 бронзовый знак
задан 8 июл 2015 в 6:56
95 1 1 золотой знак 2 2 серебряных знака 9 9 бронзовых знаков
Если вы таким образом собираетесь парсить что-нибудь, возможно, вы идёте неправильным путём.
8 июл 2015 в 9:18

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Для того, чтобы найти элемент в строке используется метод std::string:find , он вернет позицию первого вхождения. Если символ или подстрока не входят в исходную строку, вернет std::string::npos :

std::string equation = "1 + 2 = 4"; std::cout  

Отслеживать
ответ дан 8 июл 2015 в 7:02
4,169 1 1 золотой знак 27 27 серебряных знаков 41 41 бронзовый знак

Вы не сообщили, в объекте какого типа у вас хранится строка.

Ниже показана демонстрационная программа, которая осуществляет поиск символа в символьном массиве s1 и в объекте с именем s2 класса std::string .

#include #include #include int main() < char s1[] = "2 * 2 = 4"; std::string s2( s1 ); char c = '='; char *p = std::strchr( s1, c ); if ( p != nullptr ) < std::cout std::string::size_type n = s2.find( c ); if ( n != std::string::npos ) < std::cout > 

Вывод программы на консоль выглядит следующим образом:

Character '=' found at position 6 The rest of the string is "= 4" Character '=' found at position 6 The rest of the string is "= 4" 

Как найти определенный символ в строке файла и выполнить над этой строкой действие (sh)?

Всех приветствую. Дано - файл, в котором имеются строки вида:

Mik_01-01-1990.rvk:0 Mik_02-01-1990.rvk:1 Mik_03-01-1990.rvk:1 Mik_04-01-1990.rvk:2

Необходимо перебором определить строки, заканчивающиеся на ":0", собрать их в один список и записать в файл.

Пробовал
while IFS= read -r line
но не понял, как правильно реализовать.
Может есть другие варианты?

  • Вопрос задан более года назад
  • 438 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *