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

hng1254544 2022-08-05 13:07:10

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

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

#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老师 8天前
@赵4老师 最多支持9位
  • 举报
回复
相关推荐
发帖
C语言

6.6w+

社区成员

C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
帖子事件
创建了帖子
2022-08-05 13:07
社区公告
暂无公告