#include <stdio.h>
int func(char*);
int main(int argc, char *argv[]) {
char *nowpoint =argv[1];
int result = 0;
result = func(nowpoint);
printf("*nowpoint:%c\n", *nowpoint);
printf("result:%d\n", result);
return 0;
}
int func(char *now){
int sum = 0;
while(*now != '+'){
sum += (*now - '0');
now++;
}
printf("*now:%c\n", *now);
return sum;
}
コマンドライン引数として、「’1234+’」と入力し、*nowpointを一つずつずらして「+」を指した時にそれまでの数字の合計値を計算します。
関数(func)にメイン関数のポインタ(*nowpoint)を引数として渡し、関数内でそのポインタのアドレスを進めると、関数内ではポインタのアドレスが移動するのですがメイン関数内でのポインタのアドレスが移動しなくて困っています。(この場合、*nowpointは1のままですが*nowは+で終わっています。
関数(func)は返り値としてポインタが指してる値の合計値(sum)を返すものとしています。
このsumもゆくゆくは使っていくことになるのでメイン関数内の変数(result)に格納しなければなりません。
メイン関数内のポインタ(*nowpoint)と関数func内のポインタ(*now)のアドレスを一致させる(この場合、*nowをそのままで*nowpointの指す値を+にしたいです)にはどうすればよいでしょうか?
よろしくお願いいたします。
C言語は少し触ったことがあるくらいの初心者です。