2011-08-10 64 views
2

我需要看看我的string是否匹配「hello X」,其中X是任何int「你好x」 - 字符串比較

基本上我想捕捉它的「你好1」或「你好100」。

我該如何做到最好?

編輯0

感謝安德烈田繁縷屬。

我使用你的代碼是這樣的:

int dummy; 
if (sscanf(string, "hello %d", &dummy)) 
    /* matched */ 

回答

8
int dummy; 
int n = sscanf(string, "hello %d", &dummy); 
if (n == 1) { 
    // Matched 
} 
+0

謝謝了。如果我必須多次使用scanf,那麼scanf是一項代價高昂的操作?我猜,它會比任何字符串比較函數都更糊塗,對嗎? – hari

+1

如果您關注性能,請使用分析器和度量! – Frank

+1

這可能夠好了。但是,不管你信不信,如果匹配的整數超出範圍'INT_MIN'..'INT_MAX',代碼的行爲是不確定的。 (在實踐中,我懷疑它在所有現有的實現中表現得相當理想。) –