2016-03-28 19 views
0

uzun dizesinden dize olarak telefon numarası alın: Sadece sayılarla 145(International), 129(National) farklıBen Telit modem var ve ben sim telefon numarasını gibi Telit dönüş dizesi almak istiyorum c

"+CNUM: "","+123456789123456",**145**ok" 

Or : "+CNUM: "","+123456789123456",**129**ok" 

.

Yalnızca "+ CNUM:" "," ve "129" olmadan "+123456789123456" sayısını almak istiyorum.

Denedim:

responseBuffer ="+CNUM: "",""+123456789123456"",145"; 
sscanf(responseBuffer,"%*s %s",phoneNum); // cut the beginning 

nasıl ben sonuna kadar ',' itibaren dize sıfırlanması karakterleri kurtulurum? @JoachimPileborg için

+1

Girdi dizgisini ('responseBuffer' noktasını yapmak istediğinizi) doğru şekilde biçimlendirmeyi deneyebilirsiniz, çünkü size bir derleyici hatası vermeyecektir. –

+0

aslında ne denediniz? –

+0

Yani "+ CNUM:, + 467190002574211,145" 'gerçekten? –

cevap

0

Teşekkür i '+' char ve bir dize işaretçisi de o mağaza telefon numarasını bulduktan sonra arama yapan bir kod deneyebilirsiniz Strtok

responseBuffer ="+CNUM: "",""+123456789123456"",145"; 
token = strtok(responseBuffer, ","); 
if(token != NULL) 
    token = strtok(NULL, ","); 
strcpy(phoneNum,token); 
0

kullanın.

storePhoneNumber(const char* input, char* dest){ 
//loop over the input 
//look for '+' char 
//when found start to store numbers on by one 
// put it in to the dest 
} 
İlgili konular