2

文字から数字を抽出するのに助けが必要です。私が持っているとしましょう:

char str = "   ( 1   22  -4)";

各整数を抽出して、別のメソッドを呼び出す必要があります。

while (*p) {
     if (isdigit(*p)) {
         int val = strtol(p, &p, 10);
         on_int(val);
     } else {
         p++;
     }
 }  

整数を正常に抽出しましたが、ネガを抽出する方法がわかりません。

このコードを使用して、1、22、および4を抽出しました。4の前にそのネガティブを取得するにはどうすればよいですか?

4

2 に答える 2

2

次のように、マイナスに対応するように条件を変更する必要があります。

if ((p[0] == '-' && isdigit(p[1]))|| isdigit(p[0])) ...
于 2013-02-18T22:03:38.947 に答える
0
  while (*p) {
       if (isdigit(*p) || ( (*p == '-' || *p == '+')  && isdigit(*(p+1)) )) {
           int val = strtol(p, &p, 10);
           on_int(val);
       } else {
           p++;
       }
   }
于 2013-02-18T22:13:23.880 に答える