char配列へのポインタがあります。数字/数字(char配列ではcharとして表される)を指さなくなるまで増やしたい。
たとえば、このchar配列内pointer
を指す場合:'2'
['1'][' ']['2']['3']['4'][' '][' '][' ']['5']['6']['7']
^
*pointer
最初の数字以外の文字を指すまで増やしたい- ' '
:
['1'][' ']['2']['3']['4'][' '][' '][' ']['5']['6']['7']
^
*pointer
私はこのようなことができることを知っています:
while (*pointer == '0' || *pointer == '1' || *pointer == '2' || ...)
pointer++;
return pointer;
しかし、それはかなり長く、まったくエレガントではありません。
ポインタが数値を指していない場合にatoi()
返される、を使用できると思いました。0
while (atoi(pointer) != 0 || *pointer == '0') //while it still points at a number
pointer++; //increase the pointer until it will not point at a number
return pointer;
しかし、それは機能していないようです。多分それは大丈夫で、どこかで間違いがありますが、とにかく私は知りたかったです:
char配列へのポインターが数字/数字を指しているかどうかを確認し、Cで数字以外の文字を指すまで増やす方法は他にありますか?