Идентификация символов в строках - PullRequest
0 голосов
/ 13 февраля 2011

Какой самый короткий способ проверить, содержит ли строка символ "-" или содержит только цифры?

Редактировать: И как бы я сделал это в C без std:: строка?Какой из них лучше?

Ответы [ 3 ]

3 голосов
/ 13 февраля 2011

std::string имеет функцию-член find, которую можно использовать для поиска символа или подстроки.Он возвращает std::string::npos, если искомый символ или подстрока не найдены.

Один простой способ проверить, содержит ли строка только цифры, состоит в использовании функции-члена find_first_not_of со списком поиска "0123456789".Если он возвращает std::string::npos, строка содержит только цифры;если он возвращает любое другое значение, в строке есть какой-то другой нецифровый символ.

2 голосов
/ 13 февраля 2011

Чтобы проверить, содержит ли он какой-либо символ, например. "-" вы можете использовать strchr() c библиотечный вызов.

Что касается проверки, содержит ли строка только числа, вам, скорее всего, придется перебрать все символы и проверить, является ли она цифрой, используя isdigit() c библиотечный вызов.

Что касается C ++, взгляните на ответ Джеймса Макнеллиса.

1 голос
/ 13 февраля 2011
std::string myStr = "999-111-100";
if(myStr.find("-")!=std::string::npos)
{
    //string has a - in it
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...