在網上看到各種將字符串轉成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
