c语言如何判断一个字符串中只含有数字和小数点
如题!
[解决办法]
char str[]="51654.1546";
int n=strcspn(str,"0123456789.");
if(str[n])
{
puts("存在非小数点和数字");
}
else
{
puts("不存在非小数点和数字");
}
[解决办法]
貌似写的不好。。
这样
//0表示 不符合条件。 1表示符合
int is_num(char *str)
{
while(*str)
{
if(strchr("0123456789.",*str))
str++;
else return 0;
}
return 1;
}
[解决办法]
这样也行:
bool NumDot(){ char array[32]; gets(array); char *a=array; while (*a) { if (*a!='.'&&!(*a>='0'&&*a<='9')) { return false; } a++; } return true;}
[解决办法]
再来一个:
int fun(const char *str){if(!str) return 0;char *buf=(char*)malloc(strlen(str)+1);strcpy(buf,str);sscanf(str,"%*[0-9.]",buf);return strcmp(str,buf)==0;}