c語言將字符串轉成int,將int轉成字符串。附帶任意進制轉換函數


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM