我有一个指向char数组的指针我想增加它,直到它不指向数字/数字(在char数组中表示为char)。
例如,如果pointer
指向此char数组中的'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;
但似乎没用也许没关系,我在别的地方犯了个错误,但无论如何我想知道:
有没有其他(更好的)方法来检查指向字符数组的指针是否指向一个数字/数字,并将其增加到指向一个非数字字符,在C语言中?
最佳答案
您可能应该改用isdigit
中的ctype.h
类似于:
while (*pointer && isdigit(*pointer))
pointer++;
关于c - 如何检查指向char数组的指针是否指向数字字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13659829/