一个简单的问题,C++中怎样把字符串转换成字符数组?

wk123yh 2007-10-11 12:05:04
最近在做一个小程序,串口通信的程序,现在要把从数据库中读出的字符串类型的数据转换成字符型数据然后通过串口发出去,我以前只学过C语言,现在就是不知道C++中怎样把字符串(CString)型的数据转换成字符(Char)型的数据,请各位大哥帮忙啊!谢谢了!
...全文
2203 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wk123yh 2007-10-24
  • 打赏
  • 举报
回复
有谁知道怎么结贴啊,我郁闷了
JackyRao 2007-10-17
  • 打赏
  • 举报
回复
CString strTest = "Test";
char buf[256];
memset(buf, 0x00, sizeof(buf));
sprintf(buf, "%s", strTest.GetBuffer(strTest.GetLength());

wk123yh 2007-10-13
  • 打赏
  • 举报
回复
还请各位高手帮帮忙啊!我的问题还是没有解决!在看了各位的介绍后,我吧我原来的程序修改成下面的代码,还请大家帮忙看看!
int i;
int j;
int length[3];
for(i=0;i<=3;i++)
length[i]=str_RealValue1[i].GetLength();
char send0[10];
char send1[10];
char send2[10];
char send3[10];
for(j=0;j<length[0];j+=1)
send0[j]=str_RealValue1[0].GetAt(j);
for(j=0;j<length[1];j+=1)
send1[j]=str_RealValue1[1].GetAt(j);
for(j=0;j<length[2];j+=1)
send2[j]=str_RealValue1[2].GetAt(j);
for(j=0;j<length[3];j+=1)
send3[j]=str_RealValue1[3].GetAt(j);

char lpBuffer[]=send0;//或者其他的数组,ipbuffer是串口传送的变量。
wk123yh 2007-10-12
  • 打赏
  • 举报
回复
chenyi3315,你写的那是不是有两种方法?
wk123yh 2007-10-12
  • 打赏
  • 举报
回复
什么意思?
wk123yh 2007-10-11
  • 打赏
  • 举报
回复
能具体一点么?我不太清楚C++的函数,和C语言的好多都不一样!
wk123yh 2007-10-11
  • 打赏
  • 举报
回复
比如说把字符串型的“612.3”转换成字符型的就是“‘6’,‘1’,‘2’,‘.’,‘’3”,大概就是这个意思!
leapingfish 2007-10-11
  • 打赏
  • 举报
回复
buffer一个字符串数组,然后用strncpy,不过我好像也不明白.
AdriftLeaves 2007-10-11
  • 打赏
  • 举报
回复
何必那么麻烦,直接用就行了,因为CString定义了operator char
wk123yh 2007-10-11
  • 打赏
  • 举报
回复
请问一下,为什么后面还要加一句char array[10]呢?
chenyi3315 2007-10-11
  • 打赏
  • 举报
回复

CString s="612.3";
char *array;
array = s.GetBuffer(s.GetLength());

string s="612.3";
char array[10];
strncpy(array,s.c_str(),sizeof(array));
飞哥 2007-10-11
  • 打赏
  • 举报
回复
CString.GetBuffer(...,...)
kimiya25 2007-10-11
  • 打赏
  • 举报
回复
std::string和CString应该不一样的吧?
ckt 2007-10-11
  • 打赏
  • 举报
回复
你直接利用CString的成员函数操作就行啦


详见MSDN
quentinliu 2007-10-11
  • 打赏
  • 举报
回复
CString 是ms 提供的类,不是c++中的,不知道你要做什么,

得到其中的一个字符,你可以这样

CString s( "abcdef" );
char a = s.GetAt(2); ///a =='c'
如果你要全部转换,可以通过

int length = s.GetLength();
然后通过一个for循环,每个都GetAt到一个数组里就可以了。

ls的方法也相当好用,效率也更高,其他的你可以看以下msdn,实际上我觉得CString比char*要好用方面的多
likexin 2007-10-11
  • 打赏
  • 举报
回复
用CSTRING的GetBuffer函数返回一个存放字符的头指针,用一个CHAR *来接受他,然后用下标操作就可以了。
例如 char * ptr = str.GetBuffer();
定义一个数组来接受各个字符
cahr array[10]="0";
char array[0]=ptr[0];
char array[1]=ptr[1];
....也可以用一个循环,这样你的ARRAY数组就保存了CSTRING中的各个字符

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧