极简单的问题

lhbname 2003-12-12 04:58:00


String str=mystr.SubString(1,2);

switch (str)
{
case '0A':
PRC_Login(ReceiveNMS,Sender);
break;
case '0B':
PRC_GetNoteList(ReceiveNMS,Sender);
break;
default:
break;
}
我想将一个字符串地前两位(或前一位)取出作为判断条件,是否可以。如果可以,怎样实现?谢了!
...全文
52 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuemanlou 2003-12-12
  • 打赏
  • 举报
回复
switch不行的
可以用if
if()
处理1
else if ()
处理2
else if ()
 处理3
else
 其他处理
delphi_xizhousheng 2003-12-12
  • 打赏
  • 举报
回复
分支 必须可序列化的参数才能用

我的做法是 ,先用TStrings * list初始化 你的 OA OB OC 这些东西,
然后

String str=mystr.SubString(1,2);

switch (list->IndexOf(str))
{
case 0:
PRC_Login(ReceiveNMS,Sender);
break;
case 1:
PRC_GetNoteList(ReceiveNMS,Sender);
break;
default:
break;
}

CCLIS 2003-12-12
  • 打赏
  • 举报
回复
switch,case组合里只能是一个整型值的条件,你用字串,估计编译就不能通过。
luckydean 2003-12-12
  • 打赏
  • 举报
回复
用if好了
if(str=="OA")...;
lhbname 2003-12-12
  • 打赏
  • 举报
回复
case的条件只能为整形或CHAR,如何转换
PowPro 2003-12-12
  • 打赏
  • 举报
回复
是啊,同意楼上
aliker 2003-12-12
  • 打赏
  • 举报
回复
好象不行吧!
switch (str)
{
case '0A':
……
switch括号里的变量,case的条件只能为整形或可以转化成整形的,如(unsigned/signed)(long/short)int、(unsigned/signed)char等。其他的类型不行。
huoniao1976 2003-12-12
  • 打赏
  • 举报
回复
if不会用吗
lzxgz 2003-12-12
  • 打赏
  • 举报
回复
你不是已经用了吗 :)
constantine 2003-12-12
  • 打赏
  • 举报
回复
当然可以了

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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