如何检测整数的长度?如果我有le:int test(234567545);
我怎么知道int有多长?比如告诉我里面有9个数字???
我试过了 :
char buffer_length[100];
// assign directly to a string.
sprintf(buffer_length, "%d\n", 234567545);
string sf = buffer_length;
cout <<sf.length()-1 << endl;
Run Code Online (Sandbox Code Playgroud)
但大部分都是更简单的方式或更干净......
Luc*_*ore 36
分裂怎么样:
int length = 1;
int x = 234567545;
while ( x /= 10 )
length++;
Run Code Online (Sandbox Code Playgroud)
或者使用log10
方法<math.h>
.
请注意,log10
返回a double
,因此您必须调整结果.
She*_*lal 11
做一个功能:
int count_numbers ( int num) {
int count =0;
while (num !=0) {
count++;
num/=10;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
似乎没有人提到将它转换为字符串,然后获得长度.我不确定这是多么高效,但它确实在一行代码中完成:)
int num = 123456;
int len = to_string(num).length();
cout << "LENGTH of " << num << " is " << len << endl;
// prints "LENGTH of 123456 is 6"
Run Code Online (Sandbox Code Playgroud)
您可以使用stringstream
如下所示
stringstream ss;
int i = 234567545;
ss << i;
cout << ss.str().size() << endl;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43956 次 |
最近记录: |