C语言怎么判断一个字符串数字是多少位数

hng1254544 2022-08-05 13:07:10

如 char *a = "0123" 是3位 char *b = "1000"是4位 char *c = "1234567890"是10位

...全文
278 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_47033079 2022-08-06
  • 打赏
  • 举报
回复
char *a="0123"; int i; for (i=0;a[i] && '0'!=a[i]; ++i); printf("是 %d 位",strlen(a+ i));
赵4老师 2022-08-06
  • 举报
回复
@weixin_47033079 优点是可以判断超过9位的更长的数;缺点是中间有不是数字的字符也误认。
weixin_47033079 2022-08-06
  • 举报
回复
@赵4老师 考虑有非数字字符,只需要知道第一个非0字符位置和第一个非数字位置,减下就可以啦。
赵4老师 2022-08-05
  • 打赏
  • 举报
回复

#include <stdio.h>
int main() {
    char tmp[32];
    char *a="0123";
    int v,w;

    if (1==sscanf(a,"%d",&v)) {
        w=sprintf(tmp,"%d",v);
        printf("%s is %d digit(s)\n",a,w);
    }  else {
        printf("%s is not digits\n",a);
    }
    return 0;
}
//0123 is 3 digit(s)
//

赵4老师 2022-08-05
  • 举报
回复
@赵4老师 最多支持9位

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧