问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

char*到long如何转换

发布网友 发布时间:2022-04-15 01:32

我来回答

6个回答

热心网友 时间:2022-04-15 03:02

char*到long的转换可以通过字符串的首地址来实现。
itoa ltoa ultoa 这3个函数在头文件 <stdlib.h>中

其原形:

char *itoa(int value,char *string,int radix)
cahr *ltoa(long value,char *string,int radix)
char *ultoa(unsigned long value,char *string,int radix)

value 要转换的数。
String 字符串结果。
Radix value的基数。

显然易见:

i为int,l为long,ul为unsigned long。

数字不大时,用错了基本没影响。

说明:

此类函数是把 value转换成一个以空格结尾的字符串,并存储在string中(至多33个字节),不执行上溢出检查。

radix指出value的基数,radi 必须在2-36的范围内。

例:

#include <stdlib.h>
#Include <stdio.h>
void main( void )
{

char buffer[20];

int i = 3445;

long l = -344115;
unsigned long ul = 1234567890;
itoa( i, buffer, 10 );
printf( "String of integer %d (radix 10): %s/n", i, buffer );
itoa( i, buffer, 16 );
printf( "String of integer %d (radix 16): 0x%s/n", i, buffer );
itoa( i, buffer, 2 );
printf( "String of integer %d (radix 2): %s/n", i, buffer );
ltoa( l, buffer, 16 );
printf( "String of long int %ld (radix 10): 0x%s/n", l, buffer );
ultoa( ul, buffer, 16 );
printf( "String of unsigned long %lu (radix 10): 0x%s/n", ul, buffer );

}

输出
String of integer 3445 (radix 10): 3445
String of integer 3445 (radix 16): 0xd75
String of integer 3445 (radix 2): 110101110101
String of long int -344115 (radix 10): 0xfffabfcd
String of unsigned long 1234567890 (radix 16): 0x499602d2

热心网友 时间:2022-04-15 04:20

strtol(将字符串转换成长整型数)
相关函数
atof,atoi,atol,strtod,strtoul
表头文件
#include
定义函数
long
int strtol(const char *nptr,char **endptr,int base);
函数说明
strtol
()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如
base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用
16进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。
返回值
返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。
附加说明
ERANGE指定的转换字符串超出合法范围。
范例
#include
main()
{
char
a[]=”1000000000”;
char b[]=”1000000000”;
char
c[]=”ffff”;
printf(“a=%d\n”,strtol(a,NULL,10));
printf(“b=%d\n”,strtol(b,NULL,2));
printf(“c=%d\n”,strtol(c,NULL,16));
}
执行
a=1000000000
b=512
c=65535

strtoul(将字符串转换成无符号长整型数)
相关函数
atof,atoi,atol,strtod,strtol
表头文件
#include
定义函数
unsigned
long int strtoul(const char *nptr,char **endptr,int base);
函数说明
strtoul()
会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为
10则采用10进制,若base值为16则采用16进制数等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。
返回值
返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。
附加说明
ERANGE指定的转换字符串超出合法范围。
参考strtol()

#include
main()
{
char
s[]=”aBcDeFgH12345;!#$”;
int i;
printf(“before toupper() :
%s\n”,s);
for(i=0;I
s=toupper(s);
printf(“after toupper() :
%s\n”,s);
}
执行
before toupper() : aBcDeFgH12345;!#$
after toupper()
: ABCDEFGH12345;!#$

对于int转为string或者char

char s[10];

string str;

int i;

itoa(i,s,10);//这是在windows下使用的函数

str=s;

第二种普遍使用的方法是

char *s;

string str

int i;

sprintf(s,"%d",i);

str=s;

string转化为long

要使用char*作为中间过渡

string.c_str()转化为char*,然后使用sscanf()将char*转化为long

热心网友 时间:2022-04-15 05:54

n = (long)c; 字符串的首地址

n = *(long *)c; 将c数组前32位卡下来作为long的值

热心网友 时间:2022-04-15 07:46

存储内容本身未变
只是解释方式变了
c数组中每个字符实际上为4字节的2进制数
将c数组前32位卡下来作为long的值

热心网友 时间:2022-04-15 09:54

通过函数来转换的
printf输出函数

热心网友 时间:2022-04-15 12:18

字符串的首地址
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有效的教学激励策略有哪些 手机充电嗡嗡响怎么回事 手机在充电时发出嗡嗡作响 手机充电头快充有嗡嗡的声音 影视多媒体设计真的不好找工作吗 专科学影视多媒体技术好就业吗 影视多媒体技术专业就业怎么样 影视多媒体技术就业率 胆结石病人在输血后半个月,全身开始发痒是什么原因,怎样能够止痒呢?谢 ... 有关胆结石手术后的恢复,求教 清洁键盘的水晶泥有害吗 为什么兜里装着手机的人,还要再戴手表? 果壳手表能当手机用吗 苹果手表7当手机和手表不在一起时,两个都可以收到信息吗? 1978年农历11月9号出生的是什么星座 2019五彩星光英语比赛十一月九号第五场次小学c组的名单? 中国11月9号13:30是美国的几点 佩戴手表是不是就不用手机? 求翻译 是到2011? 跟团去泰国但是想去拜四面佛怎么去? 九月十日英语是什么? “11月29日”用英语怎么说 在十一月九号,我们有一场期末考试 英语翻译 在十一月九号用英语怎么说 浙江奉化初中语文教师资*中最会考到的课文大概有哪些,重点是在初三吗? 想要当初中语文老师,看初中语文老师资格证要考哪些科目? 教师资格证考试国考初中语文重点知识有哪些 教师资格小学语文跟初中语文考的内容差别大吗? 河北初中语文教师资格证面试常考的课文 初中语文教师面试常考的课文有哪些 什么软件可以冻结手机里的应用 wg14432b-ngg-n在proteus怎么找? 哪款手机品牌它是可以像360手机一样,不用root都可以使用冷藏室,冷藏应用? 丽台K2200显卡,显示器是创维FQ271WG支持2K的,用了隔DP转HDMI的转接,设置不了2560*1440 WOW 圣光之塔 怎么获得? 想看霍比特人3:五军之战2014年上映的由马丁·弗瑞曼主演的免费高清资源 如何让WIFI全速飞起来 WiFi 怎么让家里的WiFi速度飞起来 某化学课外兴趣小组探究氢气还原氧化铜的反应,有如下实验装置: WiFi提速三大招,让网速飞起来 家里wifi信号满格 还很卡,怎样让网速飞起来 美国俚语中beat someone up 是什么意思? The policeman gave the thief a blow in ___________ stomach 选择一项: a. that b. &#47; c. the d. his 急!急!初中英语的一些语法知识! ps 矩形网格工具在哪? 梦见打丈,敌人没有打中我 梦见自己被坏人围困,坏人拿枪打我,我没有害怕,也没有躲... ps中网格怎样改变图形 用PS怎么做出这种网格? Photoshop有没有网格渐变填充工具?