1. 使用itoa函数把数转换为字符串类型,在使用strlen函数统计字符串长度。即数字的位数。
2. 例程:
#include <stdio.h>#include <stdlib.h> // itoa 要使用的头文件
#include <string.h> // strlen 要使用的头文件
void main()
{
int i, len
char str[20]
scanf("%d", &i) // 读入一个数字
itoa(i, str, 10) // 将该数字转换成字符串类型
len = strlen(str) /* 计算字符串的长度 [参数1:要转换的数 参数2:转换后存放到的位置 参数3:以十进制转换]*/
printf("IN Total: %d\n", len)
}
代码如下:
#include<stdio.h>
int main()
{
int a,b
int i
printf("请输入一个数字:")
scanf("%d",&a)
b=a
for(i=0a>1i++)
{
a=a/10
}
printf("%d是%d位数\n",b,i)
}
扩展资料:
思路详解:
在C语言中,经常会用到以整数相除来确定一个整形数字的每一位的具体数字是多少,同理,此处可用整数相除来判断一个数的位数。
首先,使用scanf函数获取这个数字的值,且赋给变量b,作一个备份。
接着,确定核心思路为,当一个数整除10,第一次结果为1时,这个数是一个个位数。因而,以其作为循环内的主体。
得到了for(i=0a>1i++) a=a/10这样的代码,最后,输出结果即可。
c语言怎么计算一个数有多少位的方法:1.
输入待计算的数x
2.
定义一个数位的变量int
n=0
3.
循环,x每次缩小10倍,n=n+1
最终x会变成0,循环结束
4.
输出n值
代码:
#include
void main()
{
int x,m,n=0
printf("input x: ")scanf("%d", &x )
m=x//备份原数,供输出用
do {
n++
x /= 10
} while( x>0 )
printf("%d 是%d位数\n", m, n )
}