2
我需要看看我的string
是否匹配「hello X」,其中X是任何int
。「你好x」 - 字符串比較
基本上我想捕捉它的「你好1」或「你好100」。
我該如何做到最好?
編輯0
感謝安德烈田繁縷屬。
我使用你的代碼是這樣的:
int dummy;
if (sscanf(string, "hello %d", &dummy))
/* matched */
我需要看看我的string
是否匹配「hello X」,其中X是任何int
。「你好x」 - 字符串比較
基本上我想捕捉它的「你好1」或「你好100」。
我該如何做到最好?
編輯0
感謝安德烈田繁縷屬。
我使用你的代碼是這樣的:
int dummy;
if (sscanf(string, "hello %d", &dummy))
/* matched */
int dummy;
int n = sscanf(string, "hello %d", &dummy);
if (n == 1) {
// Matched
}
幾種方法去做。首先想到的是使用正則表達式,但這可能會超出您的要求。
http://www.gnu.org/s/hello/manual/libc/Pattern-Matching.html
謝謝了。如果我必須多次使用scanf,那麼scanf是一項代價高昂的操作?我猜,它會比任何字符串比較函數都更糊塗,對嗎? – hari
如果您關注性能,請使用分析器和度量! – Frank
這可能夠好了。但是,不管你信不信,如果匹配的整數超出範圍'INT_MIN'..'INT_MAX',代碼的行爲是不確定的。 (在實踐中,我懷疑它在所有現有的實現中表現得相當理想。) –