VC++ MFC的问题 设置了两个编辑框和一个按钮。 在按钮中编如下程序:

chard1[4],d2[4];m_edit1.GetWindowText(d1,5);d2[0]=d1[0];d2[1]=d1[1];d2[2]=d1[2];d2[3]... char d1[4],d2[4];
m_edit1.GetWindowText(d1,5);
d2[0]=d1[0];
d2[1]=d1[1];
d2[2]=d1[2];
d2[3]=d1[3];
m_edit2.SetWindowText(d2);
在一框中输1010,为什么在二框中显示的不是1010
展开
 我来答
归悦欣cf
2012-05-05 · TA获得超过1443个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1323万
展开全部
首先,如果你输入的就是1010四个字符,d1和d2的空间不是4,应该是5,因为用GetWindowText读取时除了编辑框中的字符外,还有一个结束符NULL;不管d2字符数组为多少个单元,要用SetWindowText来显示其最后一个单元必须为0;不管是用GetWindowText或SetWindowText参数类型最好是CString类型的,如果你用CString类型作为参数调用它们,肯定不会错。
追问
那么如何获取一框中输入字符串,把它付给字符串数组,在二框中显示。例如:
一中输:10001001,获取字符串给字符串数组a[10],把字符串a变成十六进制89,然后在二框中输出字符串89。
追答
第一个问题:假设你把一框中的字符串10001001读进一个CSting变量str,则可以这样读
m_edit1.GetWindowText(str);
如何把字符串一个一个字符转移到字符数组a中,如下:
int strLen=str.GetLength();//获取字符串长度
char a[strLen];//定义字符数组
for(int i=0;i<strLen;i++)];//把字符串一个一个字符转移到字符数组a中
{
a[i]=str.GetAt(i);
}
第二个问题:如何把字符串10001001转换为字符串89在二框中显示?
这是一个技巧问题(或是一种计算)所以没有标准答案,给你一些建议,不一定是最好的:字符串1000对应字符8;字符串1001对应字符9;可以采用查表法实现。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式