私はC言語では少し新しく、ポインタと逆参照を使用して関数の引数にアクセスする方法についていくつか理解したいと思います。C strtolを使用した文字列関数の引数の解析
私のコードですが、プログラムの全ポイントは、空白で区切られた2桁の数字で特定のパラメータを解析するのに、strtol
を使用することです。
int sum(const char *input){
char *input = input_line; // dereference the address passed into the function to access the string
int i; // store sum in here
char *rest; // used as second argument in strtol so that first int can be added to i
i = strtol(input, &rest, 10); // set first int in string to i
i += strtol(rest, &rest, 10); // add first and second int
return i;
}
私は、文字列は変数名で*
を持っているので、与えられた文字列パラメータにアクセスする方法を困惑している、と私はそれを回避する方法があまりにもわかりません。
とにかく、ありがとう。
'strtol()'を正しく使う方法については、 '' strtol() 'の正しい使い方」(http://stackoverflow.com/questions/14176123/correct-usage-of-strtol)を参照してください。 。あなたの現在の問題はより平凡です。関数の本体のトップレベルでパラメータ( 'input')を再定義することができないため、コードはコンパイルされません。おそらく、 'input_line'ではなく' input_line'パラメータに名前を付けることに気付いたでしょう。 –