求取整数位数的三种方法:
1 用 “/= ”的方法:
- #include <iostream>
- #include <cmath>
- using namespace std;
- int main (void) {
- int num = -12345;
- num = fabs(num);
- int cnt = 0;
- while (num) {
- num /= 10;
- ++cnt;
- }
- cout << "The length of num is " << cnt << endl;
- return 0;
- }
2 用iota(int , char* , int base) 函数 :
- #include <iostream>
- #include <string>
- #include <cmath>
- using namespace std;
- const int N = 20;
- int main (void) {
- char str[N];
- memset (str, '/0', sizeof(str));
- int num = -12345; // 12345
- itoa ((int)fabs(num), str, 10); // 10 指代是以 10 为基数的转换
- int strLen = strlen (str);
- cout << "The length of num is " << strLen << endl;
- return 0;
- }
3. 用math.h 头文件中的 log10() 函数:
- #include <iostream>
- #include <cmath>
- using namespace std;
- int main (void) {
- int num = -12345; // 12345
- int numLen = log10((double)fabs(num)) + 1; // 先求绝对值,再计算位数
- cout << "The length of num("<<num <<") is " << numLen << endl;
- return 0;
- }
编译环境:vc6.0
可能还有其他方法,欢迎大家补充。。