Как преобразовать string в char c++? [требует правки]

333
14 февраля 2017, 19:24

Есть код:

for (int i = 0; i < text.length(); ++i) {
    if(isalpha(rus_alphabet[_indexOfSymbol(text[i], rus_alphabet, rus_size)])) {
        count_of_symbols[_indexOfSymbol(text[i], rus_alphabet,rus_size)] += 1;
    }
}

Если элемент массива rus_alphabet, с индексом _indexOfSymbol(функция, которая возвращает индекс элемента) - является буквой, то прибавить 1. Проблема в том, что isalpha работает только для char, а я никак не могу преобразовать string в char(не char* ), чтобы их сравнить. P.S. string хранит одну букву. Я сравниваю всю строку, а не посимвольно. String это элемент массива строк!

rus_alphabet имеет следующий вид: rus_alphabet[0] = "А";

Answer 1

Если вопрос только в том, как получить из std::string первый символ как char, то можно:

string s = "a";
char c1 = s.c_str()[0]; // так
char c2 = *s.c_str(); // или так
char c3 = s[0]; // вариант alexolut
READ ALSO
Частотный анализ текста c++

Частотный анализ текста c++

Решил я написать частотный анализ текста на c++Возникли следующие проблемы: Русские символы нужны на всех платформах(linux, mac os, windows), поэтому...

346
Не работают плагины для OpenCPN [требует правки]

Не работают плагины для OpenCPN [требует правки]

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

338
Почему CListView обнуляется?

Почему CListView обнуляется?

У меня есть объект

343
No matching function for call to [требует правки]

No matching function for call to [требует правки]

Написал шаблон функции, описал функцию, но компилятор выдает мне такую ошибку:

442