当前位置: 技术问答>linux和unix
整数如何转换成字符串?
来源: 互联网 发布时间:2016-01-04
本文导语: 在turbo c中有一个itoa函数,可以将整数转换成字符串。可linux下怎么没有这个函数啊,有什么办法可以把一个整数转换成字符串?用sprintf? | C里面只能用sprintf进行整数转换字符串,用起来挺灵...
在turbo c中有一个itoa函数,可以将整数转换成字符串。可linux下怎么没有这个函数啊,有什么办法可以把一个整数转换成字符串?用sprintf?
|
C里面只能用sprintf进行整数转换字符串,用起来挺灵活的
|
int i=1;
char tmp[100];
sprintf( tmp, "%ld", i );
char tmp[100];
sprintf( tmp, "%ld", i );
|
#include
char *ltoa(long value, char *string, int radix)
将长整形数转换为等价的字符串
value 转换的长整形数,radix 数制(如10表示十进制)
string 转换后的字符串
#include
char *itoa(int value, char *string, int radix)
将整形数value转换为其等价的字符串
string 转换后的字符串
char *ltoa(long value, char *string, int radix)
将长整形数转换为等价的字符串
value 转换的长整形数,radix 数制(如10表示十进制)
string 转换后的字符串
#include
char *itoa(int value, char *string, int radix)
将整形数value转换为其等价的字符串
string 转换后的字符串
|
sprintf 是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:
格式化字符串上。
int ret;
char buf[128];
ret=sprintf(buf,"%dn",ttdd);
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:
格式化字符串上。
int ret;
char buf[128];
ret=sprintf(buf,"%dn",ttdd);
|
sprintf(buf,"%d", num);
将num转成字符串buf
将num转成字符串buf
|
sprintf();
ssprintf();
功能如此强大的函数,good
ssprintf();
功能如此强大的函数,good
|
up
|
#include
int snprintf(char *str, size_t size, const char *format, ...);
此函数比sprintf多一个参数size,这样就不会出现转换后字符串长度超过数组str,造成数组越界
int snprintf(char *str, size_t size, const char *format, ...);
此函数比sprintf多一个参数size,这样就不会出现转换后字符串长度超过数组str,造成数组越界
|
#include
int main(void)
{
char *a = "123";
int i;
i = atoi(a);
printf("%in", i);
exit(EXIT_SUCCESS);
}
atoi 是标准的 ASCII C 函数,怎么会没有呢?
上面的代码你自己编译运行一下!
int main(void)
{
char *a = "123";
int i;
i = atoi(a);
printf("%in", i);
exit(EXIT_SUCCESS);
}
atoi 是标准的 ASCII C 函数,怎么会没有呢?
上面的代码你自己编译运行一下!
|
//itoa 把整形转换成字符串
itoa (int i, char* string)
{
int power, j;
j=i;
for(power=1;j>=10;j/=10)
power*=10;
for(; power>0; power/=10)
{
*string++='0'+i/power;
i%=power;
}
*string='';
}
自己写一个 拿去用吧
FC4下测试过了
itoa (int i, char* string)
{
int power, j;
j=i;
for(power=1;j>=10;j/=10)
power*=10;
for(; power>0; power/=10)
{
*string++='0'+i/power;
i%=power;
}
*string='';
}
自己写一个 拿去用吧
FC4下测试过了