发布网友 发布时间:2022-04-26 04:35
共4个回答
热心网友 时间:2022-06-20 20:02
case *(p[0]):
break;
case *(p[0]+1):
break;
case *(p[0]+2):
break;
...
case *(p[1]):
break;
case *(p[1]+1):
break;
...
用case语句多麻烦呀,直接调用char *strchr(const char *s,char c);函数就好了 该函数返回字符c在字符串s中的首地址
热心网友 时间:2022-06-20 20:02
case的值只能为整数(也就是switch调用的值),字符在ASCII中也有对应的的值。字符当然就是根据指针或者下标在字符串中取得了追问这个我知道,但是我这样写case **p 这是调用第一个字符串的第一个字符吧 但是在gcc下编译不通过,说的就是不是整数!!
追答不是的,如果p是一个一维指针,例如char *p = "abcdef";我要取c,有几种方式,最简单的是下标p[2],也可以移动指针,比如*(p+2)
热心网友 时间:2022-06-20 20:03
case后面只能是一个整数或最终在内存中是整数的表达式与字符,而且必须是常量,不能是变量。你想要比对一个字符串,原则是不行的。但你可以在switch中比较,用case来检查比较结果。
热心网友 时间:2022-06-20 20:03
scanf 扫描上字串 然后循环 挨个字符对 具体什么问题追问我的意思是:有一个指针字符数组如char * p[2]={"abc","def"}; 然后我又输入一个字符串,我想匹配输入的字符中与定义的字符数组的哪个字符串相等,用switch语句实现!!老师说用字符匹配,但是我不知道case如何调用字符串里的字符!!就是怎么才case后用字符串里的一个字符做判断条件!!