Нужна помощь в преобразовании строки в символ в c ++ ---- ОШИБКА Значение типа "const char *" не может использоваться для инициализации объекта типа "char" - PullRequest
0 голосов
/ 12 февраля 2020
    bool isValidPrice(string s) 
{
    char c = s.c_str();
    return true;
}

Я пытаюсь преобразовать строку s в символ, но получаю ошибку

Значение типа "const char *" нельзя использовать для инициализации объекта типа "char "

Как мне успешно преобразовать строку s в char c?

EDIT **** Я хочу поместить каждый отдельный символ из строки и преобразовать всю строку в c -строка, чтобы я мог использовать cctype для использования c -строки функции.

Ответы [ 2 ]

2 голосов
/ 12 февраля 2020

вы не можете загрузить символ (обычно 8-битный), который является значением, с указателем (32-битный или 64-битный в зависимости от вашей конфигурации), который является адресом ( s.c_str () возвращает начальный адрес строки ). Если вы хотите извлечь определенный символ из строки, скажем, один с индексом 0, вы можете сделать:

char c = s[0];

Предполагая, что строка s не пуста

0 голосов
/ 12 февраля 2020

Из названия метода я понял, что вы хотите проверить цену продукта. Но этот код не то, чтобы проверить. Потому что если s = "&", то ваш код вернет true, которое должно быть false. Также вы проверяете только первый символ. Это правильно? Я предполагаю, что вам будет предоставлен в действительном целочисленном формате.

bool isValidPrice(string s) 
{
    if(s.length() == 0) 
        return false;

    char c = s[0];
    return true;
}
...