[英]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.