整数转化为字符串
1、可以使用itoa函数(注意,这个函数时在stdlib库中)
char *itoa(int value, char *string, int radix);
value: 被转换的整数
string: 转换后储存的字符数组
radix: 转换进制数,如2,8,10,16 进制等
#include <stdio.h>
#include <stdlib>
int main()
{
int num = 12345;
char str[7];
itoa(num,str,10);
printf("输出:%s",str);
return 0;
}
2、自定义函数
采用加‘0’,再逆序的方法,整数加‘0’就可以隐性的转化为char型(加减‘0’可以使得在int和char之间转化)
char* IntToStr(int num,char* str)
{
if(NULL == str)
return NULL;
int i = 0,j = 0;//注意初始化
char temp[100];
while(num){
temp[i] = num%10 + '0';//一个整数转化成字符型
num = num /10;
i++;
}
temp[i] = '\0';//字符串结束标志
i = i - 1;//i返回到temp最后一个有意义的数字
while(i >= 0){
str[j] = temp[i];
j++;
i--;
//str[j++] = temp[i--];
}
return str;
}
字符串转化为整数
1、使用非标准C函数atoi
int atoi(const char *nptr);参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零
#include <sddio.h>
#include <stdlib.h>
int main()
{
char str[] = "12345";
int num;
num = atoi(str);
printf("num = %d"num);
return 0;
}
2、自定义函数
int StrToInt(char*str)
{
if(NULL == str)
return -1;
int res = 0;
bool flag = false;
if(str[0] == '-' || str[0] == '+'){
flag = (*str++ != '+');
}
while(*str){
res = res*10 + (*str++ -'0');
}
return flag ? -res : res;
}