首页
社区
课程
招聘
[旧帖] [求助][求助]C语言取字符串问题 --ddk 0.00雪花
发表于: 2012-10-17 17:54 1499

[旧帖] [求助][求助]C语言取字符串问题 --ddk 0.00雪花

2012-10-17 17:54
1499
假设有一个字符串 str="ABCDEFGH"

我要把他2个字符一组的分出来,比如str1="AB",str2="CD",str3="EF",str4="GH"

这样该如何写呢?

我本来是用cstring str="ABCDEFGH"
str1=str.left(2)

可是这样在ddk无法编译

求教,该如何写代码才可以用在ddk中呢?

==================================

如果我要把这4个得到的赋值给test1[4]这个数组呢?
如test1[0]=0xAB,test1[1]=0xCD......
该怎么表示呢?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 785
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
#include<stdio.h>
#include<string.h>

int main()
{
        char pcStr[]="ABCDEFGH";
        int i;
        char pcStr1[3],
                 pcStr2[3],
                 pcStr3[3],
                 pcStr4[3];
        i=0;
        memcpy(pcStr1, &pcStr[i], 2);
        pcStr1[2]=0;
        i+=2;
        memcpy(pcStr2, &pcStr[i], 2);
        pcStr2[2]=0;
        i+=2;
        memcpy(pcStr3, &pcStr[i], 2);
        pcStr3[2]=0;
        i+=2;
        memcpy(pcStr4, &pcStr[i], 2);
        pcStr4[2]=0;
        i+=2;
        printf("%s\n%s\n%s\n%s\n", pcStr1, pcStr2, pcStr3, pcStr4);
        return 0;
}
2012-10-17 19:54
0
雪    币: 785
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
CString 是C++,而且是MFC独有的。。。
2012-10-17 19:54
0
雪    币: 785
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
ddk是什么,我还真不知道。。。。求教。
2012-10-17 19:55
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
一个简单的内存copy就行了,要在内核编程中使用CString,绝对不行的
2012-10-17 22:14
0
雪    币: 446
活跃值: (186)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
6
应该说是C++的吧,而不是MFC的,我经常在SDK中使用CString类。貌似CString是ATL和MFC共享类,MFC早就该淘汰了
2012-10-18 09:23
0
雪    币: 21
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=牧风;1109954]#include<stdio.h>
#include<string.h>

int main()
{
        char pcStr[]="ABCDEFGH";
        int i;
        char pcStr1[3],
                 pcStr2[3],
                 pcStr3[3],
                 pcStr4[3];
        i=0;
...[/QUOTE]

如果我要把这4个得到的赋值给test1[4]这个数组呢?
如test1[0]=0xAB,test1[1]=0xCD......
该怎么表示呢?
2012-10-18 11:12
0
雪    币: 785
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=哒达哒达;1110111]如果我要把这4个得到的赋值给test1[4]这个数组呢?
如test1[0]=0xAB,test1[1]=0xCD......
该怎么表示呢?[/QUOTE]

test1是什么类型的数组呢?
看你的描述,似乎是想把,字符型的值,传给数值型的?
再细一点吧。
2012-10-18 11:46
0
雪    币: 785
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
使用CString,必须要包含Afx.h而标准C++中是没有这个东西的,倒是有一个string类。。。
再看MSDN中关于CString 的说明:
Visual C++ supplies several ways to work with character-string data. These include MFC’s CString class, functions in the run-time library, and Win32 API functions.

另外
MFC早就该淘汰了,这个不好说。。。现在用的还非常多。主要是开始学的时候太绕了些。。。
2012-10-18 11:51
0
雪    币: 21
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
test1[4]的定义是 BYTE test1[4],字节型的吧?我是要用rltcopymemory写入数据的,

代码 rltcopymemory(address,test1,4)

求指教喔
2012-10-18 20:07
0
雪    币: 101
活跃值: (82)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
ddk就是写内核驱动时候的东西,函数库吧算是
2012-10-19 12:11
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
int nv;
CString s = str1.Mid(0, 2);
StrToIntEx(s.LockBuffer(), STIF_SUPPORT_HEX, &nv);
2012-10-19 15:05
0
雪    币: 785
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
看来,你是想把字符型的16进制,转换成数值型的了?
楼上的方法可以。
补充一个更通用的:
char *pcStr="AB";
int iab;
sscanf(pcstr, "%x", &iab);
printf("%x", pcstr);
2012-10-19 17:57
0
游客
登录 | 注册 方可回帖
返回
//