Существует ли несколько, изображают версию strchr () в стандартных библиотеках для C?

В c, если я хотел искать строку конкретный символ, я могу просто сделать следующее

char *p;
p = (char *)strchr(buffer,'(');
if(p){
    ....

но что, если я хочу искать больше чем один символ (или диапазон символов), например, "какая-либо цифра". Я знаю, что мог сделать что-то как

char *p=0;
char *i;
for(i=buffer;*i!='\0';i++){
    if(*i >= '0' && *i <=9){
        p=i;
    }
}

if(p){
    ...

принятие правильно завершенной строки и т.д. Но есть ли стандартная библиотечная функция, которая уже обеспечивает эту функциональность (надо надеяться, более безопасно)

7
задан Vagnerr 15 July 2010 в 16:39
поделиться

1 ответ

А как насчет strpbrk ? Похоже, это соответствует вашим требованиям.

const char * strpbrk ( const char * str1, const char * str2 );

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

РЕДАКТИРОВАТЬ: Ссылка на сайт C ++, но strpbrk является частью стандартной библиотеки C.

20
ответ дан 6 December 2019 в 09:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: