3

ここでの簡単な問題: すべての引数を保持する char** argv[] があります...これらの引数の 1 つで、% が続く整数を取得します。

例えば:

バック %2

私は本当に整数が欲しいだけです....これを取得する簡単な方法はありますか?

これは宿題なので、誰かが私を正しい方向に導くことができれば、もっと掘り下げたいと思っています.

ありがとう

4

2 に答える 2

2

これをc++メソッドを使用して行う方法は次のとおりです。

char*あなたがリストにあると仮定しましょうchar** argv[]

std::string tempString(argv[the one with the %]);
int position = tempString.find_first_of('%');
int = atoi(tempString.substr(position, tempString.size()-position).c_str());

簡単な説明、最初の行はに変換char*std::string、2番目の行はの位置を取得し%、3番目の行は数値のサブ文字列を取得し(それがの終わりで終了すると仮定char*)、それをaに変換してchar*渡しますを取得するためにそれを通過atoiしますint

お役に立てれば。

于 2012-11-15T05:25:57.947 に答える
0

を使用してそれを行う1つの方法を次に示しますatoi

for (int i = 0 ; i != argc ; i++) {
    if (argv[i][0] == '%') {
        int num = atoi(&argv[i][1]);
        printf("Got a number: %d\n", num);
    }
}
于 2012-11-15T05:05:13.313 に答える