2010-07-15 15 views
7

BenStandart C kitaplıklarında strchr() birden çok karakter sürümü var mı? c

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

ama "herhangi örneğin birden fazla karakteri (veya bir karakter aralığı) aramak istiyorsanız ne aşağıdaki Sadece yapabilirsiniz Belirli bir karakter için bir dize aramak istiyorsa hane". Ben

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

if(p){ 
    ... 

düzgün sonlandırılmış dize vb varsayarak böyle bir şey yapabileceğini Ama zaten (umarım daha güvenli) bu işlevi strpbrk hakkında

cevap

18

ne sağlayan standart kütüphanesi işlevi olduğunu biliyorum? Bill'ine uyuyor gibi geliyor.

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

"eşleşme varsa str2 parçası veya bir boş gösterici olan karakterlerin herhangi birinin str1 içinde ilk geçtiği bir gösterici döndürür."

DÜZENLEME: Bağlantı bir C++ sitesine bağlıdır, ancak strpbrk standart C kütüphanesinin bir parçasıdır.

+0

Teşekkürler. Bence ihtiyacım olan şey bu. – Vagnerr

+0

+ 1- mükemmel cevap. Faturaya ve OP'nin kısıtlamalarına mükemmel uyum sağlar. –

İlgili konular