社区
C语言
帖子详情
如何把一个char*中的数据截取出来放到int中
tianlangfeixing
2010-10-29 04:05:39
如:
00 00 00 00 18 00 00 00 08 这9个字节分别从2到5 截取出来放到一个int中,等于24(18转换过来十进制)
从6至9放到另一个int中,变成8
memcpy可以吗??
...全文
234
10
打赏
收藏
如何把一个char*中的数据截取出来放到int中
如: 00 00 00 00 18 00 00 00 08 这9个字节分别从2到5 截取出来放到一个int中,等于24(18转换过来十进制) 从6至9放到另一个int中,变成8 memcpy可以吗??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luciferisnotsatan
2010-10-29
打赏
举报
回复
[Quote=引用 7 楼 tianlangfeixing 的回复:]
引用 4 楼 hustleverpi 的回复:
char* p = 你的字符数组。
int i;
memcpy(&i, p + 2, 3);
就得到了你要的东西。
但是,如果你的char*是从网络中获取的,注意转换网络字节序
我的数据是从网络上获取的 怎么转换??
[/Quote]
大头小头问题。不过你这是字符串的话,应该没啥问题。
hustleverpi
2010-10-29
打赏
举报
回复
楼上的不要误人子弟哈~
函数htonl是本地字节序转网络字节序(long类型)
函数ntohl是网络字节转本地直接(long类型)
同理还有htons, ntohs
很好记,h就是host,主机,n就是net,网络。
luciferisnotsatan
2010-10-29
打赏
举报
回复
atoi
tianlangfeixing
2010-10-29
打赏
举报
回复
[Quote=引用 4 楼 hustleverpi 的回复:]
char* p = 你的字符数组。
int i;
memcpy(&i, p + 2, 3);
就得到了你要的东西。
但是,如果你的char*是从网络中获取的,注意转换网络字节序
[/Quote]
我的数据是从网络上获取的 怎么转换??
huhacn
2010-10-29
打赏
举报
回复
char *pcData = "000000001800000008";
char *pcTemp = pcData;
char caArrary[10] = {0};
memcpy(caArrary, pcTemp+2, sizeof(char)*8);
int nTmp = atoi(caArrary);
printf("%d", nTmp);
getchar();
hustleverpi
2010-10-29
打赏
举报
回复
上面错了,
memcpy(&i, p + 1, 4);
hustleverpi
2010-10-29
打赏
举报
回复
char* p = 你的字符数组。
int i;
memcpy(&i, p + 2, 3);
就得到了你要的东西。
但是,如果你的char*是从网络中获取的,注意转换网络字节序
justkk
2010-10-29
打赏
举报
回复
哦,搞错了..
这样试试看
memcpy(&i, s+1, 4);
printf("%d\n", i);
tianlangfeixing
2010-10-29
打赏
举报
回复
[Quote=引用 1 楼 justkk 的回复:]
可以memcpy + atoi
[/Quote]
具体可以说说吗??
justkk
2010-10-29
打赏
举报
回复
可以memcpy + atoi
C/C++
中
char
*与w
char
_t*的几种转换方法
原创文章,转载请注明出处https://blog.csdn.net/aaron_lyn1985/article/details/80053910多字节(
char
*)和宽字符(w
char
_t*)之间的转换有几种方式,下面按照从通用到特殊的顺序逐一介绍。1.C库函数1.1 关键函数(1)setlocale() 功能:配置地域化信息头文件:<locale.h>函数原型:
char
*setlo...
C/C++
中
char
*与w
char
_t*的几种转换方法
多字节(
char
*)和宽字符(w
char
_t *)之间的转换有几种方式,下面按照从通用到特殊的顺序逐一介绍。 1、C库函数 1.1 关键函数 (1) setlocale() 功能:配置地域化信息 头文件:<locale.h> 函数原型:
char
*setlocale(
int
category, const c...
程序员面试宝典
中
的
一个
错误
char
* b=(
char
*)&a
本文转自:http://www.cppblog.com/wuzimian/archive/2012/05/23/175925.aspx 1 #include 2 using namespace std; 3
int
main() 4 { 5 unsigned
int
a = 0xFFFFFFF7; 6 unsigned
char
i = (unsign
类型转换——
int
转换成
char
(截短)
int
a,b; //keil c里的
int
,也就是16位。 a=0000; b=0x1234; a=(
char
)(b);
int
a,b; 这句的功能是操作系统为变量a,b分别分配一块空闲的存储空间。以后使用a,b将相当于访问各自所对应的存储空间。 a = 0000;b = Ox1234; 这句的功能是把0000
放到
变量a所对应的存储空间,把0x1234
放到
变量b所对应的存储
C语言按照逗号
截取
char
数组的内容
#include <stdio.h> #include <string.h>
int
main () {
char
str[] ="1,2,99009,33455,t565,3"; pr
int
f ("Splitting string \"%s\"
int
o tokens:\n",str);
char
*pch = strtok (str," ,"); wh...
C语言
70,037
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章