【发布时间】:2018-01-25 10:45:57
【问题描述】:
我正在制作一个程序,让用户输入一个字符串,然后程序使用strstr 函数搜索字符串中的各种单词,然后根据找到的单词调用不同的函数。我决定使用 switch 语句来检查哪些单词存在。我做了一个原型程序:
int main() {
char str[] = "This is a string.";
char str1[] = "is";
int num = strstr(str, str1);
switch(num) {
case 0:
cout<<"Str1 is present";
break;
case -1:
cout<<"str1 is absent";
break;
}
}
这是给我的错误:
从 'char*' 到 'int' 的无效转换 [-fpermissive]
我做错了什么?
【问题讨论】:
-
strstr不是在失败时返回NULL吗?只需检查if (num) -
因此,总而言之,您做错的事情是您未能使用 RTFM。避免这种情况的一个好方法是,在 SO 问题中,将手动参考链接添加到有问题的项目,这里例如一个很好的谷歌点击 man strstr。
标签: c++ switch-statement strstr