vc中把CString变量赋值给一个char变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc中把CString变量赋值给一个char变量相关的知识,希望对你有一定的参考价值。

想要的结果是这样:
char TmpBuff[4];
CString tmp1,tmp2,tmp3,tmp4,tmp5;
tmp1="160";
tmp2="100";
tmp3="30";
tmp4="ff"
tmp5="aa"
现在我想要的结果是把CString分别赋值给char数组里的元素
想要的结果:TmpBuff[0]=tmp1;TmpBuff[1]=tmp2;TmpBuff[2]=tmp3;
TmpBuff[3]=tmp4;TmpBuff[4]=tmp5;
我应该怎么写呢?
TmpBuff[0]=tmp1.GetBuffer(tmp1.GetLength());
这样写会报错:error C2440: '=' : cannot convert from 'char *' to 'char'
小弟刚刚学习vc,请懂vc的朋友帮忙解决!多谢

TmpBuff[0] = char ( strtol( LPCSTR( temp1 ), NULL, 10);
TmpBuff[1] = char ( strtol( LPCSTR( temp2 ), NULL, 10);
TmpBuff[2] = char ( strtol( LPCSTR( temp3 ), NULL, 10);
TmpBuff[3] = char ( strtol( LPCSTR( temp4 ), NULL, 10);
参考技术A char TmpBuff[4][10];
CString tmp1,tmp2,tmp3,tmp4,tmp5;
tmp1="160";
tmp2="100";
tmp3="30";
tmp4="ff"
tmp5="aa"

#include <stdio.h>
strcpy(TmpBuff[0], tmp1);

C语言中把unsigned char 型数据赋值给int 型数据会不会出问题

这个问题,因为不知道你具体的使用环境,没法作出进一步的判断,只能将 unsigned char型的变量赋给一个int型的变量会发生什么事情告诉你。
unsigned char a = 'A';
int b = -1666666;
b = a;
由于unsigned char类型的变量只有一个字节,而int类型有4个字节,当将一个unsigned char类型的变量赋给一个int型的变量后,会使int型变量的高三个字节全部清零。在上述实例中就是b的高三个字节全部变为0。也就是说b永远为正整数了。细节就是这样了,至于会不会产生副作用,视你的使用环境而定了。
参考技术A 不会有问题, 反正char的数值再大也不会让Int变成负数,
我不记得这样赋值有没有自动的int到unsigned int的升格,
不过肯定不会出问题就是了
参考技术B 直接赋值会有问题。最好是显式转换。
#include <iostream>
using namespace std;

int main()

unsigned char ch = '5';
int i;
i = ch - '0';
cout<<i<<endl;
参考技术C 直接赋值,不会有任何问题 参考技术D 强制转换一下看看,不懂C语言

以上是关于vc中把CString变量赋值给一个char变量的主要内容,如果未能解决你的问题,请参考以下文章

C语言中把unsigned char 型数据赋值给int 型数据会不会出问题

如何将CString赋值给char数组的其中一项

char* 给CString 赋值。

oracle变量赋值及打印

VC++ 如何向Edit框中动态赋值

如何将String类的字符串 赋值给Char数组