我有一个指向 char 数组的指针。我想增加它直到它不会指向一个数字/数字(在 char 数组中表示为一个 char)。
例如,如果pointer
指向'2'
此 char 数组:
['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 中?