首页 > 代码库 > 整数转字符串,字符串转整数
整数转字符串,字符串转整数
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。
题目比较简单,但是涉及到许多问题,例如非法输入,有正负号,是否为空字符串,且不是输入大数类型,可以用long long,8字节整型等等。主要:int a=a*10+(str[i]-‘0‘)
也可以直接使用c的库函数,atoi函数,如果不能转换则返回0.使用例子如下
string a="-1232 pighehe";
int num=atoi(a);
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 enum flag{ 5 valid=0, 6 invalid=1 7 }; 8 int judge=valid; 9 10 11 long long paraInt(string str)12 {13 judge=valid;14 bool Fuflag=false;15 long long num=0;16 int i=0;17 if(str.size()==0) 18 {19 judge=invalid;20 return invalid;21 }22 if (str[0]==‘-‘)23 {24 i=1;25 Fuflag=true;26 if(str.size()==1) 27 {28 judge=invalid;29 return invalid;30 }31 }32 33 for (i;i<str.size();++i)34 {35 int temp=str[i]-‘0‘;36 if(temp>=0&&temp<=9)37 num=num*10+temp;38 else{39 judge=invalid;40 return invalid;41 }42 }43 if(Fuflag)44 a=-a;45 return num;46 }47 int main()48 {49 string str;50 while(cin>>str)51 {52 long long num=paraInt(str);53 if(!judge)54 cout<<num<<endl;55 else56 {57 cout<<"invalid input"<<endl;58 }59 str.clear();60 }61 return 0;62 }
题目:输入一个整数,把该整数转换成字符串并输出。例如输入整数345,则输出整数"345"。
类似的也有函数itoa,使用例子如下:
int num=12345;
char str[10];
itoa(num,str,10); //将num转换为字符串保存到str中
不使用itoa函数:将整数的每位转换为字符,然后再逆序保存。例如:
//整形转成字符串函数实现 //题目不难,重点考察面试者对问题考虑的全面程度 #include <iostream> using namespace std; void itoa_mf(int num,char str[]) { int sign = num; int i = 0; int j = 0; char temp[100]; //如果是负数就去掉符号,将-1234转成1234 if(sign < 0) { num = -num; } //转成字符串,1234转成"4321" do { temp[i] = num % 10 + ‘0‘; num /= 10; i++; }while(num > 0); //如果是负数的话,加个符号在末尾,如:"4321-" if(sign < 0) { temp[i++] = ‘-‘; } temp[i] = ‘\0‘; i--; //将temp数组中逆序输入到str数组中 //将"4321-" ====> "-1234" while(i >= 0) { str[j] = temp[i]; j++; i--; } //字符串结束标识 str[j] = ‘\0‘; } //测试用例 void main() { int a = 0; char s[100]; itoa_mf(a,s); cout << s << endl; }
整数转字符串,字符串转整数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。