char sz[4];
strcpy(sz,"abs3");
unsigned int ui;
如何将sz数组里的字符串付给ui?
我不会啊!!那位大虾帮帮忙??
16 个解决方案
#1
atoi()
#2
ui=*((unsigned int *)sz);
或者干脆memcpy(&ui,sz,4);
或者干脆memcpy(&ui,sz,4);
#3
memcpy
#4
atoi 结果是0
memcpy结果是863199841
不知道楼主是想直接把abs3赋值到ui里,还是把它的各个字符的asc码加起来赋过去。。。
memcpy结果是863199841
不知道楼主是想直接把abs3赋值到ui里,还是把它的各个字符的asc码加起来赋过去。。。
#5
函数名称: atoi
函数原型: int atoi(char *str)
函数功能: 将字符串转换成一个整数值
函数返回: 转换后的数值
参数说明: str-待转换为整型数的字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
int n;
char *str ="12345.67";
n=atoi(str);
printf("string=%s integer=%d",str,n);
return 0;
}
函数原型: int atoi(char *str)
函数功能: 将字符串转换成一个整数值
函数返回: 转换后的数值
参数说明: str-待转换为整型数的字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
int n;
char *str ="12345.67";
n=atoi(str);
printf("string=%s integer=%d",str,n);
return 0;
}
#6
函数名称: atol
函数原型: long atol(char *str)
函数功能: 将字符串转换成一个长整数
函数返回: 转换后的数值
参数说明: str-待转换为长整型的字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
long l;
char *str ="98765432";
l=atol(lstr);
printf("string=%s integer=%ld",str,l);
return(0);
}
函数原型: long atol(char *str)
函数功能: 将字符串转换成一个长整数
函数返回: 转换后的数值
参数说明: str-待转换为长整型的字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
long l;
char *str ="98765432";
l=atol(lstr);
printf("string=%s integer=%ld",str,l);
return(0);
}
#7
函数名称: strtol
函数原型: long strtol(const char *s,char **endptr,int radix)
函数功能: 将数值字符串转换成长整形格式数
函数返回: 长整形转换结果
参数说明: s-待转换的浮点字符串,radix-转换的数制,endptr-转换后的尾数字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *string="87654321",*endptr;
long lnumber;
lnumber=strtol(string,&endptr,10);
printf("string=%s long=%ld",string,lnumber);
return 0;
}
函数原型: long strtol(const char *s,char **endptr,int radix)
函数功能: 将数值字符串转换成长整形格式数
函数返回: 长整形转换结果
参数说明: s-待转换的浮点字符串,radix-转换的数制,endptr-转换后的尾数字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *string="87654321",*endptr;
long lnumber;
lnumber=strtol(string,&endptr,10);
printf("string=%s long=%ld",string,lnumber);
return 0;
}
#8
kankan
#9
任意选用一个就是了,
注意数据范围。
另外注意字符串需要是可以转化的,
"abs3" 其实 s 属于不可转换的字符, a b 可以在 16进制控制下被转换,
但是由于s的存在, 后面的内容就被丢弃了
char *string="abs3",*endptr;
long lnumber;
lnumber=strtol(string,&endptr,16);
printf("string=%s long=%lx",string,lnumber);
注意数据范围。
另外注意字符串需要是可以转化的,
"abs3" 其实 s 属于不可转换的字符, a b 可以在 16进制控制下被转换,
但是由于s的存在, 后面的内容就被丢弃了
char *string="abs3",*endptr;
long lnumber;
lnumber=strtol(string,&endptr,16);
printf("string=%s long=%lx",string,lnumber);
#10
我需要的结果是863199841,谢谢各位大虾!!
结帖啦
结帖啦
#11
可是还有问题:
如果
char sz[10];
strcpy(sz,"1001abs3");
unsigned int ui;
用memcpy时,只能将前面1001赋给ui,已经占了4个字节,怎么办?
如果
char sz[10];
strcpy(sz,"1001abs3");
unsigned int ui;
用memcpy时,只能将前面1001赋给ui,已经占了4个字节,怎么办?
#12
对于
char sz[10];
strcpy(sz, "1001abs3");
unsigned int ui;
用memcpy时,ui得值是82524169,但在内存中是31 30 30 31,只能将前面1001赋给ui,已经占了4个字节,怎么办?我想将"1001abs3"在内存中占四个字节,能行吗?
char sz[10];
strcpy(sz, "1001abs3");
unsigned int ui;
用memcpy时,ui得值是82524169,但在内存中是31 30 30 31,只能将前面1001赋给ui,已经占了4个字节,怎么办?我想将"1001abs3"在内存中占四个字节,能行吗?
#13
strtoul
#14
向 jixingzhong(瞌睡虫·星辰) 学习!
#15
学习
#16
这为大哥解决了我的问题哦
#1
atoi()
#2
ui=*((unsigned int *)sz);
或者干脆memcpy(&ui,sz,4);
或者干脆memcpy(&ui,sz,4);
#3
memcpy
#4
atoi 结果是0
memcpy结果是863199841
不知道楼主是想直接把abs3赋值到ui里,还是把它的各个字符的asc码加起来赋过去。。。
memcpy结果是863199841
不知道楼主是想直接把abs3赋值到ui里,还是把它的各个字符的asc码加起来赋过去。。。
#5
函数名称: atoi
函数原型: int atoi(char *str)
函数功能: 将字符串转换成一个整数值
函数返回: 转换后的数值
参数说明: str-待转换为整型数的字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
int n;
char *str ="12345.67";
n=atoi(str);
printf("string=%s integer=%d",str,n);
return 0;
}
函数原型: int atoi(char *str)
函数功能: 将字符串转换成一个整数值
函数返回: 转换后的数值
参数说明: str-待转换为整型数的字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
int n;
char *str ="12345.67";
n=atoi(str);
printf("string=%s integer=%d",str,n);
return 0;
}
#6
函数名称: atol
函数原型: long atol(char *str)
函数功能: 将字符串转换成一个长整数
函数返回: 转换后的数值
参数说明: str-待转换为长整型的字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
long l;
char *str ="98765432";
l=atol(lstr);
printf("string=%s integer=%ld",str,l);
return(0);
}
函数原型: long atol(char *str)
函数功能: 将字符串转换成一个长整数
函数返回: 转换后的数值
参数说明: str-待转换为长整型的字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
long l;
char *str ="98765432";
l=atol(lstr);
printf("string=%s integer=%ld",str,l);
return(0);
}
#7
函数名称: strtol
函数原型: long strtol(const char *s,char **endptr,int radix)
函数功能: 将数值字符串转换成长整形格式数
函数返回: 长整形转换结果
参数说明: s-待转换的浮点字符串,radix-转换的数制,endptr-转换后的尾数字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *string="87654321",*endptr;
long lnumber;
lnumber=strtol(string,&endptr,10);
printf("string=%s long=%ld",string,lnumber);
return 0;
}
函数原型: long strtol(const char *s,char **endptr,int radix)
函数功能: 将数值字符串转换成长整形格式数
函数返回: 长整形转换结果
参数说明: s-待转换的浮点字符串,radix-转换的数制,endptr-转换后的尾数字符串
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *string="87654321",*endptr;
long lnumber;
lnumber=strtol(string,&endptr,10);
printf("string=%s long=%ld",string,lnumber);
return 0;
}
#8
kankan
#9
任意选用一个就是了,
注意数据范围。
另外注意字符串需要是可以转化的,
"abs3" 其实 s 属于不可转换的字符, a b 可以在 16进制控制下被转换,
但是由于s的存在, 后面的内容就被丢弃了
char *string="abs3",*endptr;
long lnumber;
lnumber=strtol(string,&endptr,16);
printf("string=%s long=%lx",string,lnumber);
注意数据范围。
另外注意字符串需要是可以转化的,
"abs3" 其实 s 属于不可转换的字符, a b 可以在 16进制控制下被转换,
但是由于s的存在, 后面的内容就被丢弃了
char *string="abs3",*endptr;
long lnumber;
lnumber=strtol(string,&endptr,16);
printf("string=%s long=%lx",string,lnumber);
#10
我需要的结果是863199841,谢谢各位大虾!!
结帖啦
结帖啦
#11
可是还有问题:
如果
char sz[10];
strcpy(sz,"1001abs3");
unsigned int ui;
用memcpy时,只能将前面1001赋给ui,已经占了4个字节,怎么办?
如果
char sz[10];
strcpy(sz,"1001abs3");
unsigned int ui;
用memcpy时,只能将前面1001赋给ui,已经占了4个字节,怎么办?
#12
对于
char sz[10];
strcpy(sz, "1001abs3");
unsigned int ui;
用memcpy时,ui得值是82524169,但在内存中是31 30 30 31,只能将前面1001赋给ui,已经占了4个字节,怎么办?我想将"1001abs3"在内存中占四个字节,能行吗?
char sz[10];
strcpy(sz, "1001abs3");
unsigned int ui;
用memcpy时,ui得值是82524169,但在内存中是31 30 30 31,只能将前面1001赋给ui,已经占了4个字节,怎么办?我想将"1001abs3"在内存中占四个字节,能行吗?
#13
strtoul
#14
向 jixingzhong(瞌睡虫·星辰) 学习!
#15
学习
#16
这为大哥解决了我的问题哦