jeonkc 2020-03-26
在网上看到各种将字符串转成int,和int转成字符串的方法。我自己比较喜欢用的方法是下面的,记住模板就行,最开始我也老是记不住,找到规律,多用几遍就好了。
1.将字符串转成int
char s[20] = "123456"; // 注如果此处不是数字字符串类型,如下面的字符串 12abc --> 12 ab12 --> 0
int a = 0;
sscanf(s,"%d",&a); // a = 123456 就得到了
2.将int转成字符串
int a = 12345;
char s[20] = "";
sprintf(s,"%d",a);
这时候s中保存的就是字符串“12345”。
是不是很好用,下面再附带一个进制转换问题
3.将nt类型转成任意进制,返回转换后的字符串
代码如下:
#include<stdio.h> #include<stdlib.h> //包含malloc()函数 #include<string.h> //包含字符串的操作函数 #include<vector> //包含vector #include<algorithm> //包含reverse()函数 ,对vector进行反转 using namespace std; char *toRscale(int a,int r){ char *s = (char*)malloc(sizeof(char) * 100); strcpy(s,""); //初始化s为空串 vector<int> v; while(a!=0){ int temp = a%r; a = a/r; v.push_back(temp); } reverse(v.begin(),v.end()); char temp[20] = ""; for(int i=0;i<v.size();i++){ int x = v[i]; strcpy(temp,""); //每轮循环初始为空串 sprintf(temp,"%d",x); strcat(s,temp); //字符串连接 } return s; } int main(){ int a = 5; int r = 2; // 将a转成r进制 char *s = toRscale(a,r); printf("%s\n",s); return 0; }
输出结果: 101