社区
C语言
帖子详情
字符串的问题
ZIPPO_TISEKI
2002-06-28 04:19:21
给出一个字符串,如何判断字符串是数字?可以正负带小数点。
要判断“+,-,各种符号,字符,数字,空格,小数点“
可否给出完整的函数?返回值为char *
可以再加分!!!
...全文
50
11
打赏
收藏
字符串的问题
给出一个字符串,如何判断字符串是数字?可以正负带小数点。 要判断“+,-,各种符号,字符,数字,空格,小数点“ 可否给出完整的函数?返回值为char * 可以再加分!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
softman_2000
2002-07-02
打赏
举报
回复
使用atof函数,如果返回之为零,则不是数,否则是一个数。
char ch[] = "3223.3423";
float f = atof(ch);
可以是一试。
ZIPPO_TISEKI
2002-07-02
打赏
举报
回复
/**
* Judge string is digit
**/
int
JudgeStringIsDigit(char *str)
{
int i, len, cnt;
cnt = 0;
len = strlen(str);
for ( i = 0; i < len ; i++ ) {
if ( str[i] == '.' ){
cnt ++;
}
}
if (cnt > 1) {
str = "";
return ERROR;
}
if(str[0] == '0' && str[1] != '.') { //like 0123 error
return ERROR;
}
if(str[0] == '+' || str[0] == '-' ) {
if(str[1] == '0' && str[2] != '.' ) { //like -012 or +012 error
return ERROR;
}
}
if(str[0] == '+' || str[0] == '-' || isdigit(str[0]) != 0 ) {
goto judgenext;
} else {
str = "";
return ERROR;
}
judgenext:
for ( i = 1; i < len ; i++ ) {
if ( isdigit(str[i]) != 0 || '.' == str[i] ) {
continue;
} else {
str = "";
return ERROR;
}
}
return OK;
}
感谢大家的帮助,看看我的这个函数有没有bug?
等公司网速快的时候就给分,谢了~~,
以后有问题还请大家多多帮忙阿。
ZIPPO_TISEKI
2002-07-01
打赏
举报
回复
-02.345e 好像就不行阿
FrankQf
2002-06-28
打赏
举报
回复
#include <stdio.h>
int isNumber(char *);
void main(void)
{
char *p1="-435646.0";
int a;
a=isNumber(p1);
if (a)
printf(p1);
else
printf("error!!!\n");
return ;
}
int isNumber(char *p)
{
int i=0,count=0;
while(*p)
{
if (i==0)
if(((*p)!='+')&&((*p)!='-')&&(!((*p)<='9' && (*p)>='0')))
return 0;
else
i=1;
else
if (*p=='.')
{
count=count+1;
if (count>1 || *(p+1)==0)
return 0;
}
else
{
if((*p)>'9' || (*p)<'0')
return 0;
}
p++;
}
return 1;
}
//以上在VC6上调试通过!
ice119103
2002-06-28
打赏
举报
回复
词法分析?
atlantis13579
2002-06-28
打赏
举报
回复
正则表达式的算法
snowroad
2002-06-28
打赏
举报
回复
//返回1是数字 0不是
int IsDigiString(char *szBuf)
{
char szValid[]={" +-.0123456789"} ;
int ret=1,i ;
for(i=0;i<strlen(szBuf);i++)
{
if(strchr(szValid,szBuf[i])==NULL)
{
ret=0 ;
break;
}
}
return ret ;
}
已调试过。
ZIPPO_TISEKI
2002-06-28
打赏
举报
回复
谢谢 minitigger(阿修罗十三之雪) 先~~
但是小数点的问题没有考虑吧。。
继续等待。。。
FrankQf
2002-06-28
打赏
举报
回复
可以对字符串进行分析,例如比较经典的是表达式分析,这方面的你可以参考一下有关数据结构和相关算法的书。你如果要判断是否全为数字的话,这个应该很容易完成。
minitigger
2002-06-28
打赏
举报
回复
char * ptr ;
ptr ="-7498327.7489273" ;
char c ;
for (int i =0;i<strlen(ptr);i++ ,c=ptr++)
if(i=0)
if('+'==c||'-'==c||atoi(c)>=0&&atoi(c)<=9) ;
else return -1 ;
if(atoi(c)>=0&&atoi(c)<=9||','==c) ;
else return -1 ;
return 0 ;
我没有调试,肯定有错误,自己调吧
xingforever
2002-06-28
打赏
举报
回复
能不能说清楚点
给个一字符串例子看看
fastjson的jar包 绿色版
这个库支持JSON对象和Java对象之间的相互转换,包括JSON
字符串
到Java对象的反序列化,以及Java对象到JSON
字符串
的序列化。它还提供了解析JSON
字符串
和生成JSON
字符串
的方法,使得处理JSON数据变得简单易行。 其次,...
算法——
字符串
处理集合
hash思想解决
字符串
问题
实现子串查找函数strstr 实现
字符串
转成整型函数atoi 实现
字符串
拷贝函数strcpy 实现
字符串
中单词倒置
字符串
的子串
问题
1.1最长公共子序列 LCS
问题
描述:Longest Common Subsequence,一...
A-B(
字符串
问题
)
不过麻烦的是,A和B都是
字符串
—— 即从
字符串
A中把
字符串
B所包含的字符全删掉,剩下的字符组成的就是
字符串
A−B。 输入格式 输入在2行中先后给出
字符串
A和B。两
字符串
的长度都不超过10 4 ,并且保证每个...
return返回值
问题
和
字符串
问题
在 C 语言中下面那个语句的结果是 1 ? 1.return 7&1; ...2.char *p="hello";...对于char *p="hello",在常量区存放这个
字符串
,指针p指向这个
字符串
,也就是指针p中存放的是hello
字符串
的地址,...
SpringBoot前后端分离,Swagger返回的Json数据成
字符串
问题
解决
出现的
问题
...经过反复的检查,发现
问题
在于后台返回的response的Content-type为text,那么swagger就会将他当成一个
字符串
进行展示。就没有看起来很清爽的画面了。想知道怎么转换吗,想必已经猜到了,...
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章