5.12
#include<iostream>
using namespace std;
int main()
{
unsigned int ffCnt = 0, flCnt = 0, fiCnt = 0;
char ch, prech = '\0';
cout << "请输入一段文本:" << endl;
while (cin >> ch)
{
bool bl = true;
if (prech == 'f')
{
switch (ch)
{
case 'f':
++ffCnt;
bl = false;//这里是为了后面的if(!bl)若没有这个代码,当输入ffi时会统计ff和fi都出现一次
break;
case'l':
flCnt;
break;
case'i':
++fiCnt;
break;
}
}
if (!bl)//因为ff已经组成了ff字符,统计了次数,所以必须将ff的第二个f不赋给prech
prech = '\0';
else
prech = ch;
}
cout << "ff的数量是:" << ffCnt << endl;
cout << "fi的数量是:" << fiCnt << endl;
cout << "fl的数量是:" << flCnt << endl;
system("pause");
return 0;
}
5.21
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
string currString, preString;
bool bl = true;
cout << "请输入一组字符串:" << endl;
while (cin >> currString)
{
if (currString == preString)
{
bl = false;
//字符串相等的时候,设置bl为false是为了后边的if(bl)
cout << "连续出现的字符串是" << currString << endl;
break;
}
preString = currString;
}
if (bl)
//如果字符串不等,bl为true,下面一条语句输出;如果字符串不相等,bl为false,下面一句语句不会被执行
cout << "没有连续出现的字符串" << endl;
system("pause");
return 0;
}
if(false)和if(true):
if(false)和if(true)
if(bl)的相关知识:
一: if(false)程序永远不会被执行,因此,有些写法会利用if(false)来注释一些语句;
if(true)会一直被执行,相当于没有判断条件
其他第五章重要知识点:
1.break语句负责终止离他最近的while、do while、for或switch语句,并从这些语句之后的第一条语句开始继续执行。
2.continue语句终止最近的循环中的当前迭代并立即开始下一次迭代,continue语句只能出现在for、while和do while循环的内部。continue语句终止当前的迭代,但是仍然继续执行循环。