社区
C语言
帖子详情
字符串的问题
ZIPPO_TISEKI
2002-06-28 04:19:21
给出一个字符串,如何判断字符串是数字?可以正负带小数点。
要判断“+,-,各种符号,字符,数字,空格,小数点“
可否给出完整的函数?返回值为char *
可以再加分!!!
...全文
81
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
打赏
举报
回复
能不能说清楚点
给个一字符串例子看看
字符串
问题
本文探讨了一种基于
字符串
的
问题
,通过使用SAM(Suffix Array with Maximal Matching)进行优化解决。
问题
涉及从给定
字符串
中选取子串,形成特定条件下的最长目标串。文章详细介绍了SAM的构建过程,如何通过拓扑排序和DP算法优化解决方案,以及如何处理串的前缀和支配关系。
Trie树之
字符串
统计
问题
本文围绕Trie树之
字符串
统计
问题
展开。Trie树即字典树,以类似字典方式存储数据,经典应用包括
字符串
统计
问题
。该
问题
需维护
字符串
集合,支持插入和询问操作。文中介绍了算法实现,定义数组存储节点信息,实现insert()和query()函数,并给出了实现代码。
字符串
问题
—其七
博客围绕
字符串
问题
展开,涵盖0左边必有1的二进制
字符串
数量、拼接
字符串
使字典顺序最小、找最长无重复字符子串等多个
问题
。每个
问题
都给出题目描述及举例,部分有代码实现,如符合斐波那契数列规律、自定义比较函数等,部分解法可参考原书。
字符串
问题
汇总
该博客汇总了多个
字符串
问题
及对应算法。包括求最长无重复字符子串、使
字符串
每种字符只出现一次且字典序最小、寻找最长配对括号子串长度,以及满足特定条件的
字符串
个数计算等
问题
,并给出了不同
问题
的多种实现代码。
AI刷题-
字符串
元音相似性
问题
、
字符串
对比
问题
博客围绕两个
字符串
问题
展开。一是
字符串
元音相似性
问题
,需判断偶数长度小写
字符串
前后半部分元音字母数量是否相同,使用固定大小数组统计计数;二是
字符串
对比
问题
,要将含相同数量特定字符的
字符串
拆分成最多子串,用计数器跟踪字符平衡情况。
C语言
70,037
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章