返回信息流switch不能以字符串为常量表达式吗?
void CTestDlg::OnBtnok()
{
// TODO: Add your control notification handler code here
char ch1='0';
CString strType="abc";
CString str;
if(ch1=='0')
{//出错信息指在这行
switch(strType)
{
case"abc":str="REQ_CHALLENGE";break;
case"dsc":str="ACK_CHALLENGE";break;
case"3bv":str="REQ_AUTH";break;
default:AfxMessageBox("代码出错!");break;
}
}
}
出错信息为: switch expression of type 'class CString' is illegal
为什么?
这是一条镜像帖。来源:北邮人论坛 / cpp / #16865同步于 2008/11/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【求助】switch不能以字符串为常量表达式吗?
gfbyr
2008/11/29镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
好像是,得是整型变量
【 在 gfbyr 的大作中提到: 】
: switch不能以字符串为常量表达式吗?
: void CTestDlg::OnBtnok()
: {
: ...................
【 在 PtwCJ 的大作中提到: 】
: 不行
: 如果第一个字符没有重复的话,直接判断第一个字符就ok了
我这个程序只是个实验的程序,应为之前的程序是先判断ch1的,在原来的基础上改的,就没删这部分了的
字符有对应的ASCII码,是整型的
单个字符其实就相当于8位的整型
【 在 gfbyr 的大作中提到: 】
: 为什么呢?
: 那为什么单个字符的可以,字符串的就不行?