重庆网站建设的目的,安徽省住房和城乡建设厅网站域名,家具网站开发项目计划书,汉沽做网站功能#xff1a;将任意类型的整数转换为字符串。在stdlib.h中与之有相反功能的函数是atoi。
用法#xff1a;char*itoa(int value,char*string,int radix);
int value 被转换的整数#xff0c;char *string 转换后储存的字符数组#xff0c;int radix 转换进制数…功能将任意类型的整数转换为字符串。在stdlib.h中与之有相反功能的函数是atoi。
用法char*itoa(int value,char*string,int radix);
int value 被转换的整数char *string 转换后储存的字符数组int radix 转换进制数如2,8,10,16 进制等因此可以使用该函数实现十进制转换成二进制或8进制或16进制。 #include stdlib.h
#include stdio.h
int main(void)
{int number123456;char string[25];itoa(number,string,10);printf(integer%d string%s\n,number,string);return 0;
}那么如何来用自己的语言来写呢 #include iostream
#include stdio.h
//将整数转换为十进制字符串并且不用itoa
int main()
{int num12345;int i0,j0;char str[7],temp[7];while (num){temp[i]num%100;num/10;}temp[i]\0;ii-1;while (i0){str[j]temp[i--];}str[j]\0;printf(string%s\n,str);return 0;
}方法是先加‘0’,再逆序的办法整数加0就会隐形的转换为char型的数。但需要注意的是负整数不能通过itoa被转化为二进制、八进制、十六进制而正整数可以。请看如下的代码 #include stdio.h
#includestdlib.h void main()
{char str[8]; int i-2; itoa(i,str,2); printf(%d的二进制数为: %s\n\n,i,str);
}vc输出 -2的二进制数为: 11111111111111111111111111111110
并且出现警示框
正整数就可以了。 #include stdio.h
#includestdlib.h void main()
{char str[8]; int i2; itoa(i,str,2); printf(%d的二进制数为: %s\n\n,i,str); } 结果 2的二进制数为: 10请按任意键继续. . .上述代码不能实现负整数与0转化为字符串补充另一种做法
#include iostream #include cstring #include stdlib.h using namespace std; void int2str(int n,char* str) //n可以为正整数、0、负整数 { char temp[10]; if (strNULL) { return; } int i0; int n2n0?n:-n;//n2为n的绝对值 if (n20) { temp[i]0; } while (n2) { temp[i]n2%100; n2/10; } temp[i]\0; i--; int j0; if (n0) { str[j]-; j; } while (i0) { str[j]temp[i--]; } str[j]\0; } void test(char* testname,int n,char* expected) { if(testname!NULL) couttestname begins:; char str[10]; int2str(n,str); if (strcmp(str,expected)0) { coutpassedendl; } else { coutFailedendl; } } //输入150 void test2() { int n; cinn; test(test1,n,150); } //输入0 void test3() { int n; cinn; test(test2,n,0); } //输入-50 void test4() { int n; cinn; test(test3,n,-50); } void main() { test2(); test3(); test4(); }