| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2141 人关注过本帖
标题:switch语句问题
取消只看楼主 加入收藏
doom5211
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-6-7
收藏
 问题点数:0 回复次数:1 
switch语句问题
在学习C++ Primer时遇见一个习题,关于switch语句的.
题目如下(我把它改了一下,因为书上题目出的很简单,是结合书中的一个例子的扩展).
用switch语句写一个字符记数的程序,输入一段字符序列,能够记录其中如下双字符出现的次数:ff、fl、fi。
我的程序如下:
#include<string>
#include<iostream>
using namespace std;
void main()
{
string ch;
int ffcnt=0,flcnt=0,ficnt=0;
while(cin>>ch)
{
switch(ch)
{
case'f':
while(cin>>ch)
{
switch(ch)
{
case'f':
++ffcnt;
break;
case'l':
++flcnt;
break;
case'i':
++ficnt;
break;
default:
break;
} //结束第二个switch语句
} //结束第二个while语句
default:
break;
} //结束第一个switch语句
} //结束第一个while语句
cout<<"numble of ff:\n"<<ffcnt<<endl;
cout<<"numble of fl:\n"<<flcnt<<endl;
cout<<"numble of fi:\n"<<ficnt<<endl;
}
我在这里用了一个switch的嵌套,不知道可以不可以,我的用意就是当出现一个f时就再用第二个switch来判断接下来的第二个字符是否为f,l,i中的任意一个。
但编译出问题。Error C2450: switch expression of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' is illegal
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
搜索更多相关主题的帖子: switch语句 string 字符 cin 
2007-06-24 16:06
doom5211
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-6-7
收藏
得分:0 
谢谢无限循环以及其他大虾的指点,我知道我出错的地方了,的确switch里的表达式要为整型的,而我用的是ch,是字符串类型,的确不匹配。
但我的题目是要考虑要输入一个字符序列,按照几位大虾改的只能输入两个字符(也许是我还没有看懂,汗!)是否这样的修改不满足题目的要求啊。题目要求对于一个输入的字符序列,再来计算其中符合要求的双字符个数.

2007-06-25 15:09
快速回复:switch语句问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015518 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved