整数转化为字符串
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] = ' ';//字符串结束标志 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字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 ) 字符时停止转换,返回整型数。否则,返回零
#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; }