2011-08-10 8 views
2

stringが "hello X"と一致するかどうかを確認する必要があります(Xは任意のintです)。"hello x" - 文字列の比較

基本的に私は "hello 1"か "hello 100"かどうかを知りたいです。

どのようにすればよいですか?

編集0

感謝アンドレアBergia。

私はこのようなコードを使用しています:それについて移動する

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'は何度もやらなければならないのですか?私は、それは任意の文字列の比較関数よりも、打者だろうと思いますか? – hari

+1

パフォーマンスが懸念される場合は、プロファイラと測定を使用してください。 – Frank

+1

これで十分でしょう。しかし、一致する整数が 'INT_MIN'..'INT_MAX'の範囲外であれば、コードの動作は定義されていません。 (実際には、私はそれが既存のすべての実装で合理的にうまくいくと考えています。) –