while for的用法,其中还包括了break和continue
一、重复出入的程序,输入!才结束
前面那个只用while(cin>>)的可是永远不会停,这个才是正确用法
#include <iostream>
using namespace std;
int main()
{
char c;
int nNum,nLet,nOther;//统计数字和#
nNum=nLet=nOther=0;
cin>>c;
while(c!='!'){//用!来结束
switch(c){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
nNum++;
break;
case '#':nLet++;break;
default:nOther++;break;
}
cin>>c;//这个别少了啊
}
cout<<"数字"<<nNum<<endl;
cout<<"#"<<nLet<<endl;
cout<<"其他的"<<nOther<<endl;
return 0;
}
需要注意的点其实就是break的用法。
下面看一个题:
把输入的小写字母转换为大写:
#include <iostream>
using namespace std;
int main()
{
char str[100];
int i=0;
cin.getline(str,100);
do{
if(str[i]<'a'||str[i]>'z')continue;
str[i]-=32;//转换
}while(str[++i]!='\0');//注意一下do是先做再判断
cout<<str<<endl;
return 0;
}
考虑一下如果一上来就输入回车,那么就是一个空串,str[0]就是'\0'而dowhile判断的是str[1]中的那个结束符号。