В 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){
...
принятие правильно завершенной строки и т.д. Но есть ли стандартная библиотечная функция, которая уже обеспечивает эту функциональность (надо надеяться, более безопасно)
А как насчет strpbrk ? Похоже, это соответствует вашим требованиям.
const char * strpbrk ( const char * str1, const char * str2 );
«Возвращает указатель на первое вхождение в str1 любого из символов, которые являются частью str2, или нулевой указатель, если совпадений нет.»
РЕДАКТИРОВАТЬ: Ссылка на сайт C ++, но strpbrk
является частью стандартной библиотеки C.