C++ 如何获取int变量的长度,因为字符串具有内置函数,例如string.length()
有没有办法得到int变量的长度,例如在string中,我们只需写int size=string.length()就可以得到长度C++ 如何获取int变量的长度,因为字符串具有内置函数,例如string.length(),c++,C++,有没有办法得到int变量的长度,例如在string中,我们只需写int size=string.length()就可以得到长度 #包括 #包括 使用名称空间std; int main() { int i=0; 不能包含 #包括 #包括 使用名称空间std; int main(){ 断言(int(log10(9))+1==1); 断言(int(log10(99))+1==2); 断言(int(log10(123))+1==3); 断言(int(log10(999))+1==3); 返回0;} 对于
#包括
#包括
使用名称空间std;
int main()
{
int i=0;
不能包含
#包括
#包括
使用名称空间std;
int main(){
断言(int(log10(9))+1==1);
断言(int(log10(99))+1==2);
断言(int(log10(123))+1==3);
断言(int(log10(999))+1==3);
返回0;}
对于长度,我假设您指的是数字中的位数:
#include <math.h>
.....
int num_of_digits(int number)
{
int digits;
if(number < 0)
number = (-1)*number;
digits = ((int)log10 (number)) + 1;
return digits;
}
#包括
.....
整数位数(整数)
{
整数位数;
如果(数字<0)
数字=(-1)*数字;
数字=((int)log10(number))+1;
返回数字;
}
或:
int num\u位(int number)
{
整数位数=0;
若(数<0)数=(-1)*数;
while(数字){
数目/=10;
数字++;
}
返回数字;
}
另一个选项可能是(也可以与float一起使用,但结果不能保证):
#包括
#包括
#包括
int num_of_digits3(float number){
stringstream ss;
ss << setprecision (20) << number;
return ss.str().length();
}
int num\u的数字3(浮点数){
细流ss;
ss您在这里有几个选项:
(此答案假设您的意思是整数输入中可打印的字符数)
将输入作为字符串读取,并在转换为int之前获取其长度。请注意,为了简洁起见,此代码避免了错误处理。
#包括
#包括
使用命名空间std;
int main(int argc,字符**argv){
不能串;
无法确定它是否符合您的要求,但您可以使用std::to_string将数字数据转换为字符串,然后返回其长度。整数没有长度。但是,该整数的十进制表示有长度。“int变量的长度”(内存大小)在环境中是固定的,我不认为有像您所认为的那样简单的方法来获得整数的位数。“是否有可能找到该大小”是的,您只需自己(通过您的程序)进行计数。请注意,对于十进制数,记录₁₀ 这个数字每增加10倍就增加1。这是一个相对常见的技巧。为自己编写一个函数。这对于负数来说是失败的(我认为是灾难性的)。
#include <math.h>
.....
int num_of_digits(int number)
{
int digits;
if(number < 0)
number = (-1)*number;
digits = ((int)log10 (number)) + 1;
return digits;
}
int num_of_digits(int number)
{
int digits = 0;
if (number < 0) number = (-1) * number;
while (number) {
number /= 10;
digits++;
}
return digits;
}
#include <iostream>
#include <sstream>
#include <iomanip>
int num_of_digits3(float number){
stringstream ss;
ss << setprecision (20) << number;
return ss.str().length();
}
#include <iostream>
#include <sstream>
using namespace std;
int main(int argc, char** argv) {
cout << "Please enter the value of i" << endl;
string stringIn = "";
cin >> stringIn;
cout << "stringIn = " << stringIn << endl;
size_t length = stringIn.length();
cout << "input length = " << length << endl;
int intIn;
istringstream(stringIn) >> intIn;
cout << "integer = " << intIn << endl;
}
int length_of_int(int number) {
int length = 0;
if (number < 0) {
number = (-1) * number;
++length;
}
while (number) {
number /= 10;
length++;
}
return length;
}