2013-12-17 194 views
0

sscanf的我嘗試下面的代碼來從一個字符串讀數到另一個字符串使用正則表達式正則表達式與長度限制

char des[25]={0}; 
char *src="1234567890"; 
sscanf(src, "%[[0-9]{1,5}]s", des); 
sscanf(src, "%[^[0-9]{1,5}$]s", des); 

我想僅前5位。我沒有在sscanf中獲得所需的輸出。

+3

你必須認識到,['scanf'(和家庭)](http://en.cppreference.com/w/c/io/fscanf)沒有一般的正則表達式格式。有一種*類似*的特定類型的正則表達式,但它*不是正則表達式。 –

回答

0

這將讀取src第5位至des

#include <stdio.h>  

main() { 
    char des[25]={0}; 
    char *src="1234567890"; 
    sscanf(src, "%5s\0", des); 
    puts(des); 
} 

要閱讀只是數字,更換sscanf有:

sscanf(src, "%5[0-9]", des); 
+0

該作品謝謝你 – Dinesh