由于itoa是非标准的C函数,所以很多做题的OJ上都使用不了。
因此有两种解决方法:
1、使用C++新的类型:string
这个有的时候会用不了,需要在编译器命令里加上
-std=c++11
这个新的数据类型就是字符串,是C++中新增的。这个是在头文件:#include<string>
而且要加上#include<iostream> 用上命名空间:using namespace std;
这样子就可以使用了。常用的几个:
to_string();把一个东西变成字符串
s.size(),计算这个字符串的长度
2、自己比赛的时候,可以简单写个两个函数
把一个整数变为字符,函数不会单独分开,但是可以根据下面的代码来:
//** 关于把数字变为字符串输出 **//
#include<stdio.h>
int main()
{
char temp[100] = {0},str[100] = {0};
int num = 12345;
int i = 0;
int j = 0;
while(num)
{
temp[i++] = num%10+'0'; //加上'0'自动变为字符
//因为字符0的ASCII是48
num = num/10;
}//先字符的第一是数字的最后一位。倒过来存先
while(i >= 0)
{
str[j++] = temp[--i];
}
j--;
printf("%s",str);
printf("\n");
return 0;
}
//** 关于把字符串变为数字输出 **//
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
gets(str);
int i=0;
int num = 0; //存数字
int a = 0; //存每次的个位
while(i<strlen(str))//字符型转化为整数
{
a=str[i]-'0'; //减去0就是从字符变为数字
num=num*10+a;
//这个就是每次的个位乘10上去后再加个位
i++;
}
printf("%d\n",num);
return 0;
}