itoalinux
① linux下没有itoa函数,sprintf又不能转换成二进制,那么如何写一个小函数,把十进制转换成二进制
连续除以2,让余数倒排即可,我写了个输出成int的,只不过这个int是二进制而已,你可以参考
int to2(int n)
{
int r=0;
int shang,yushu;
shang=n;
while(shang!=0)
枝棚{
猛段则yushu=shang%2;
r=r*10+yushu;
燃团shang=shang/2;
}
return r;
}
② Linux系统下关于函数itoa()
#include <stdlib.h>
int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);
long long atoq(const char *nptr);
linux下面没对应的好像,我man 没有查到.
给你直接找到一个实现,你放到自散陆册己代码里面就可以了
void itoa ( unsigned long val, char *buf, unsigned radix )
{
char *p; /* pointer to traverse string */
char *firstdig; /* pointer to first digit */
char temp; /* temp char */
unsigned digval; /* value of digit */
p = buf;
firstdig = p; /* save pointer to first digit */
do {
digval = (unsigned) (val % radix);
val /= radix; /* get next digit */
/冲宏悉镇* convert to ascii and store */
if (digval > 9)
*p++ = (char ) (digval - 10 + 'a '); /* a letter */
else
*p++ = (char ) (digval + '0 '); /* a digit */
} while (val > 0);
/* We now have the digit of the number in the buffer, but in reverse
order. Thus we reverse them now. */
*p-- = '\0 '; /* terminate string; p points to last digit */
do {
temp = *p;
*p = *firstdig;
*firstdig = temp; /* swap *p and *firstdig */
--p;
++firstdig; /* advance to next two digits */
} while (firstdig < p); /* repeat until halfway */
}
③ linux下c语言怎样把字符串与整数连接起来
用sprintf
charszBuff[16];
sprintf(szBuff,"%s%d","aaaa",i);
④ linux 下 _snprintf 不能用
linux下可以用sprintf代替_snprintf
sprintf 是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] ... );
可以这样用sprintf(string,"%d",value);所以你必须先指定string的大小
至于vc环境的程序移植到linux下,你可以到网上下载 Linux C函数使用手册.chm
然后对照到windows下的函数改一下就差不多了!!!!!!!
⑤ C++ 与atoi具有相反功能的函数是什么
string 是C++ STL定义的类型,atoi是 C 语言樱颤的库函数,所以要先转换成 char* 类型才可以用 atoi。
string s;
cin>>s;
int result = atoi( s.c_str() );
(atoi 这个函数比较弱, 只能读一个数字。 真正NB的是 strtol 函数。)
//==============================================
附 atoi 函数说明:
原型: int atoi(const char *nptr);
函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回没扰整型枯颂旦数。
⑥ 用man查看c函数帮助时,为什么man atoi能查到,而itoa查不到
itoa不是c标准库函数和局穗,是各种编译器对c便准库的扩张之一
有一些c编译器唤卜支持这个函数(比如vc)
但gcc不支持,有些linux发行版自行修改在腊含gcc中加入了扩展版的c标准库所以支持,因此你平台上的gcc不一定支持itoa,因此也man不到了
建议用sprintf替代itoa,或者自己写一个itoa(网上找的):
char* itoa(int val, int base){
static char buf[32] = {0};
int i = 30;
for(; val && i ; --i, val /= base)
buf[i] = "0123456789abcdef"[val % base];
return &buf[i+1];
}
⑦ 用linux的itoa函数要包含哪个.h文件
itoa 功 能:把一整数掘卜转换为字裤虚符串 用 法:char *itoa(int value, char *string, int radix); 详细解释:itoa是胡散燃英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.其中value为要转化的整数, radix是基数的意思,即...
⑧ linux下如何将整形转化为字符串
有如下两种常用方法。
一、可以通过调用C库函数itoa实现。
1 原型。
char*itoa(int value,char*string,int radix);
2 头文件。
stdlib.h
3 功能。
将value的值,转换为字符串,并存到string中,如果转化后的字符串长档庆度超过radix,那么只存radix位。
4 样例。
int i=1234;
char buf[10];
itoa(i, buf, 10);
执行后buf内容为字符串"1234"。
二、通过sprintf格式化输出到字符串中。
itoa并不是C语言标准库函数,所以并不是每个平台均支持该函数。当不支持时,可以用sprintf函数来达到同样效果。
1 原型。
int sprintf( char *buffer, const char *format, [ argument] … );
2 头文件。
stdio.h
3 功薯蠢颂能。
类似于printf,根据格式化字符串format,将后续参数列表中的参数逐个输出。不过输出目标不是标准输出终端,而是字符串buffer。
4 样数郑例。
int i=1234;
char buf[10];
sprintf(buf,"%d",i);
执行后buf内容同样为字符串"1234"。
⑨ linux里使用不了itoa函数吗
itoa是广泛应用的非标准C语言扩展函数。由于它不是标准C语言函数,键消所以不能在所有的编译器中使用。但是,大多数的编译器(如Windows上的)通常在<stdlib.h>头文件中包含这个函数。在<stdlib.h>中与之稿贺知有相反功能的函数是atoi。功能:把一拍御整数转换为字符串。char *itoa(int value, char *string, int radix); 头文件: <stdlib.h>程序例: #include <stdlib.h> #include <stdio.h> int main() { int number = 123456; char string[25]; itoa(number, string, 10); printf("integer = %d string = %s\n", number, string); return 0; }
⑩ C语言中怎样调用函数将十进制转换成二进制
1、打开visualC++6.0-文件-新建-文件-C++SourceFile。