2019独角兽企业重金招聘Python工程师标准>>>

C 的switch只支持整型表达式、以及可以转化成整型的表达式。这就是说,switch不支持字符串、数组、浮点数。支持整型,包括short / unsigned short / int / unsigned int/ long / unsigned long 。此外,还有long long和unsigned long (如果编译器支持long long的话)   。除了整型,如果一个变量或表达式可以转化成整型,那么switch也支持,就是根据这个原则我们可以将switch()中的参数转换成含有字符串的表达式来处理字符串的选择问题。如下: switch(strcmp(str1,str)==0?(1:strcmp(str2,str)==0?(2:strcmp(str3,str)==0?3:default)))
{
case 1:
    .....................
case 2:
    .......................
case 3:
........................
case 4:
...........................default:   ..........................
} 看了下论坛,有网友说可以使用hash函数替代的方法,如: switch ( hash( somestring ) )
{
case xxx : // xxx = hash( "your string1" );
...
} 还有网友指出可以用查表的方法实现,如:TStrings *ss = new TStringList();
ss->Add( "Your string1" );
ss->Add( "Your string2" );

...

switch( ss->IndexOf( somestring ) )
{
0 : // Your string1
1 : // Your string2
...
default : // Invalid
}
delete ss; 上述两种方法我均没有测试过,感兴趣的朋友可以搞一下。

转载于:https://my.oschina.net/ypimgt/blog/89648

switch case 解决字符串选择的问题相关推荐

  1. c语言圈复杂度switch,C语言switch/case圈复杂度优化重构

    软件重构是改善代码可读性.可扩展性.可维护性等目的的常见技术手段.圈复杂度作为一项软件质量度量指标,能从一定程度上反映这些内部质量需求(当然并不是全部),所以圈复杂度往往被很多项目采用作为软件质量的度 ...

  2. c语言圈复杂度switch,干货|C语言switch\/case圈复杂度优化重构

    点击上方"中兴开发者社区",关注我们 每天读一篇一线开发者原创好文 ▍作者简介 作者陈彬是一名Linux驱动开发工程师,对Linux内核.软件设计和敏捷有较浓厚的兴趣和长期实践经验 ...

  3. 在C++中对字符串std::string使用switch/case语句

    如果你使用C语音的string,也就是char *,是可以放在switch/case语句中的. 在C++中是不能对字符串string使用switch/case语句的,这里的string指的是std:: ...

  4. 如何解决大量的if语句或switch case语句?

    洪流学堂,让你快人几步. 本篇内容来自洪流读书会解读书籍<代码大全2>. 很多面试官喜欢问这样的问题,如何解决大量的if语句或switch case语句?如果你仅仅在优化的层面回答,可能不 ...

  5. 遨博机器人执行线程_遨博机器人报错代码:If命令 if…else和条件选择命令Switch...Case...Default...

    11.6.4 If命令 if-else If-else 是选择判断命令,通过判断条件运行不同的程序分支. ➢  点击昵称右侧空白口会弹出输入框,可修改命令名称. ➢  点击 If 条件下空白窗口会弹出 ...

  6. c语言 switch case 字符串,c语言switch case用法详解

    c语言switchcase用法详解 switch是"开关"的意思,它也是一种"选择"语句,但它的用法非常简单.switch是多分支选择语句.说得通俗点,多分支就 ...

  7. c语言 两个case连在一起,嵌入式C语言 2选择结构 SWITCH CASE

    1. Switch /Case Switch (){ cases: break; default: : 要求写一个简易的计算器程序,实现简单的加减乘除计算,并输出结果. 例如: 输入 1+1  输出结 ...

  8. golang switch case语句 简介

    注意: 1.switch/case 后是一个表达式(即:常量,变量,一个有返回的函数都可以): 2.case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致: 3.case后面可以 ...

  9. Go语言-switch case | switch中判断多个值、interface conversion: interface {} is float64, not int

    文章目录 Go语言-switch case 背景 switch case Golang中switch的特殊用法--fallthrough go语言switch中判断多个值 Type Switch,判断 ...

最新文章

  1. 首位植入脑机接口的患者通过Twitter发布信息
  2. python入门教程 官方-Pytest官方教程-01-安装及入门
  3. [YTU]_2498 (C++类实现最大数的输出)
  4. mac系统装mysql还是mariadb_Mac上安装mariadb
  5. ORACLE 普通表转换成分区表(在线重定义)
  6. linux openssh升级8.1,Centos7利用rpm升级OpenSSH到openssh-8.1p1版本
  7. python简说(十八)导入模块
  8. Python天气预报查询
  9. 【源码】H5+JS混合实现《Just Do 8》app游戏源码分享
  10. python保存不了_新手,我的python保存不了文件
  11. WMware Workstation——时间和时区问题
  12. android之StrictMode介绍
  13. 2021-03-23梦笔记
  14. 32利用文件系统保存数据_数据管理技术的产生与发展
  15. 事务日志备份文件达到 47G 大小,啥原因导致 ?
  16. 测试工程师从面试到入职
  17. html文档成品,HTML成品代码
  18. 数藏行业公众号裂变,单日拉新8w+,实现低成本获客?
  19. Android中自带的list布局
  20. Qt编写通用主界面V2019

热门文章

  1. mysql新增字段位置_图解MySQL | [原理解析] MySQL 为表添加列 是怎么quot;立刻quot;完成的...
  2. matlab 直方图 肥尾,概率分布细谈:厚尾、长尾、幂律、指数
  3. 使用 sroll-snap-type 优化滚动
  4. android 沙箱 逆向,【原创】沙箱Sandboxie v3.40 逆向完整源码
  5. python中run函数作用_Python run()函数和start()函数的比较和差别介绍
  6. Android Studio两模块间getLaunchIntentForPackage跳转,出现intent为null,已解决
  7. 服务启动失败_将控制台程序转换为服务运行
  8. php Tsocket read 0,thrift 返回 TSocket read 0 bytes 求助!!!!汗血宝马
  9. python fortran混合编程_python fortran c 混合编程
  10. python远程同步文件_Python实现的远程文件自动打包并下载功能示例