C++中怎么查询输入数字的长度

我想做的一道题,我的思路要知道它的数字长度,譬如输入了234478就是六位数,69547就是五位数,程序怎么写,麻烦要简单些,好的加多20分!!谢谢啦

计算输入数字的长度可以有以下两种方法:

    定义字符数,把这个数字赋值给这个数组,求数组的长度即可:

    #include <string.h>
    #include <iostream>
    using namespace std;
    int main(){
    char str[20];
    cin >> str;
    cout <<strlen(str)<< endl;
    return 0;
    }
    /*
    输出:
    12345
    5
    */

    定义一个整型,输入整数赋值,依次对该数进行除10运算,直到为0为止,每除一次该数的位数就加一,最后输出位数就行。

#include <string.h>
#include <iostream>
using namespace std;
int main(){
int n,sum=0;
cin >> n;
while(n){
sum++;
n/=10;
}
cout <<sum<< endl;
return 0;
}
/*
输出:
12345
5
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-09
//如果你说的是输入的是整型数据的话可以这样:
#include<iostream>
using namespace std;
int detect(long num)
{
int result=0;
long tmpNum=num;
while(true)
{
tmpNum=tmpNum/10;
result++;
if(tmpNum==0)
{
break;
}
}
return result;
}
int main(int argc,char** args)
{
long int data=7654321;
cout<<"数据:"<<data
<<"的位数是:"<<detect(data)
<<endl;
}
//如果不是,如1楼直接用类库string很方便
第2个回答  2010-05-09
//这是一种很通用的方法,将对你有很大的启发
//希望你好好体会,以后你就能转化其他的类型了
#include <iostream>
#include <sstream>
#include <string>

using namespace std;

template <class T>
string toString(const T& s) {
ostringstream os;
os << s;
return os.str();
}

int main(){

int a ;
string b;
cin>>a;
b = toString(a); //将int转化为string型
cout<<b.length() <<endl;
return 0;

}
第3个回答  2010-05-09
#include <string>//当用字符串时要包含这个头文件,但是后面不要加.h
#include <iostream>
using namespace std;//这个要写,因为头文件没加.h

int main(){
string str;
cout<<"请输入";
cin >> str;
cout << str.length() << endl;//这里用到length()函数
return 0;//可写可不写
}
第4个回答  2010-05-09
#include<iostream>
using namespace std;
int main()
{int num,n=0;
cout<<"Input num:";
cin>>num;
while(num)
{n++;
num/=10;
}
cout<<endl<<n;
}
相似回答