Handy Function¶
1.string 转 int
int strtoi(string& str){
int n=atoi(&str);
return n;
}
注意 atoi 的 原型
int atoi (const char * str);
如果只想转换 string 中单个数字,必须
int strtoi2(string& str){
char ch=str[0];
int n=atoi(&ch);
return n;
}
atoi(&str[0]) 会转换整个字符串
- int 转换为 string
string itostr(int& n){
stringstream ss;
string str;
ss << n;
ss >> str;
return str;
}
3.整数按位相加,即每一位上的数字加起来
// n 为进制
int getsum(int& m,int& n){
int sum=0;
while(m){
sum+= m % n;
m/=n;
}
return sum;
}
上面那样写当然没什么大问题,但是 getsum 函数没法这样调用
getsum(139, 10)
因为数字不是引用,必须这样
int a = 139;
int b = 10;
getsum(a, b);
我想这不是自己希望看到的,实际上,对于 int 这样的内置类型,编译器早就做了很多优化,使用引用传递基本上是多此一举。