int转char数组long转char数组 进制_到n


itoa头文件:

#include <stdlib.h>

itoa  (新版本vs要使用_itoa_s_itoa) 用于把一个整数 转换到char数组

ltoa  (新版本vs要使用_ltoa_s_ltoa) 用于把一个long长整数 转换到char数组

atoi 用于把一个字符串的数值 转换为int

例1:打印输出自身的进程id

#include <stdio.h>
#include <Windows.h>

int main(){
	DWORD id=GetCurrentProcessId();//取自身进程id
	char idstr[25];//定义一个足够容纳long字符串的字符数组
	_ltoa_s(id, idstr, 10); //使用ltoa进行转换
	printf(idstr);  //打印输出
	getchar();
	return 0;
}


例2:

#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>  //_itoa_s必须要包含的头文件
char* 到文本(int number){
	static char str[10];  //static 静态变量 防止函数结束 指针被释放 返回数据也被释放
	_itoa_s(number, str, 10);// 参数一:要被转换的数值 参数二:char数组 参数三:进制,一般为10,大小应在2-36之间。
	return str;
}




int main(){

	//到文本
	int a = 123456;
	char str10[20];//长度要足够容纳转换后的字符串,
	char str2[50];//长度要足够容纳转换后的字符串
	_itoa_s(a, str10, 10);//表示把整数a转换为10进制的char数组+一个'\0',结果放到str10里
	_itoa_s(15, str2, 2);//表示把整数a转换为10进制的char数组+一个'\0',结果放到str10里
	printf("str10的10进制字符串为%s\n", str10);
	printf("str2的2进制字符串为%s\n", str2);
	printf("str10的占用大小为%d,是一个%d位数\n", sizeof(str10), strlen(str10));
	
	//取文本长度 取字符数组长度
	char* sss = "abc你好";
	printf("'abc你好'的长度为%d\n", strlen(sss));//输出结果为7

	//取后n位数
	char* str3 = "789456";
	int x=atoi(str3+2);//因为指针往右偏移了2位,截至到'\0'结束 所以也可以用它来取整数型的数值后n位数
	printf("789456的后4位数为%d", x);//输出结果为:9456


	getchar();
	return 0;
}