как показать персонажа, пришедшего несколько раз подряд? [Дубликат]

0

Есть ли все равно, чтобы показать, что символ s появляется 5 раз в строке, есть ли какая-либо функция для сортировки символа, и покажите нам, что символ появляется 5 или 6 раз в строке.

#include<iostream>
#include<string>
int main(){
using namespace std;
string a="hello how are you"
//now i want to show the l character appears several time.
//and i need help here.

system("pause");
}
Теги:
string

3 ответа

2
Лучший ответ

Просто продолжайте подсчет с помощью указателя до достижения нулевого символа и продолжайте увеличивать целое число при успешном сравнении.

#include<iostream>
#include<string>
int main(){
using namespace std;
string a="hello how are you";
char *p = &a[0];
int c = 0;
do
{   
    if(*p == 'l')
    c++;
}while(*p++);
cout << c;
}
  • 0
    вы храните ссылки, чем сравниваете каждый персонаж
3

Вы можете использовать std :: count

int lcount = std::count(a.begin(), a.end(), 'l');
  • 0
    вот хорошая функция count () теперь я собираюсь попробовать
1

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

std::string a("hello how are you");
std::map<char,int> count;
for(auto c : a)
{
    ++count[c];
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню