簡體   English   中英

正則表達式從C中的字符串掃描整數和字符串

[英]Regex to scan integer and string from string in C

我有一個看起來像這樣的字符串: {opt,2}{home,4}...我必須將opt和2掃描成一個字符串和整數。 我正在這樣做:

char str[40] = "{opt,2}{home,4}";
char s[20];
int *x;
sscanf(str, "{%[^,],%[0-9]}", s,&x);

這是段錯誤。 正確的方法是什么?

要掃描這樣的文本,您不需要正則表達式,您只需使用簡單的scanf說明符即可。

char s[16];   /* The string in the pair */
int n;        /* The integer in the pair */
int len;      /* The length of the pair */

for (; sscanf(buf, "{%[^,],%d}%n", s, &n, &len) == 2; buf += len) {
    /* use str and n */
}

%n說明符僅接收sscanf調用中讀取的字符數,並將其存儲在匹配的參數中(在本例中為len )。 我們使用此值,以便我們可以遞增從其讀取的buf ,以便可以讀取下一個string-int對。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM