1.输入一行字符,统计出其中数字字符的个数。
#include <iostream>
using namespace std;
int main() {
char ch;
int count = 0;
while( ch = getchar(), ch != '\n') //若读入的字符不是回车
{
if(isdigit(ch)) //若是数字
count++;
}
printf("%d\n", count);
}
2.给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
#include <iostream>
using namespace std;
char a[26];
int s[26];
int main() {
int q=0,temp;
char ch;
while(ch=getchar(),ch!='\n')
{
int i=0;
bool judge=0;
temp=(int)ch;
s[temp-97]++;
for(i;i<26;++i)
{
if(a[i]==ch)
{
judge=1;
break;
}
}
if(judge==0)
{
a[q]=ch;
q++;
}
}
char w='0';
bool j=0;
for(int i=0;i<26;++i)
{
if(a[i]!=w&&s[(int)a[i]-97]==1)
{
cout<<a[i];
j=1;
break;
}
}
if(j==0)
cout<<"no";
}
3.石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。
游戏规则:石头打剪刀,布包石头,剪刀剪布。
现在,需要你写一个程序来判断石头剪子布游戏的结果。
#include <iostream>
#include <string>
using namespace std;
int Num(string);
int main() {
int n;
int a,b;
cin>>n;
string player;
for(int i=0;i<n;++i)
{
cin>>player;
a=Num(player);
cin>>player;
b=Num(player);
a=a-b;
if((a==-1)|(a==2))
{
cout<<"Player1"<<endl;
}
else if((a==1)|(a==-2))
{
cout<<"Player2"<<endl;
}
else
{
cout<<"Tie"<<endl;
}
}
}
int Num(string s)
{
if(s=="Rock")
{
return 0;
}
else if(s=="Scissors")
{
return 1;
}
else if(s=="Paper")
{
return 2;
}
}
4.输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。
试输出第1个最长的单词和第1个最短单词。
#include <iostream>
#include <string>
using namespace std;
string str[200];
int main() {
string maxs,mins,s="";
int i=0;
bool judge=0;
char ch;
while((ch = getchar())!='\n')
{
if(judge == 1 && (ch == ' ' || ch == ','))
continue;
if(ch != ' ' && ch != ',')
{
s += ch;
str[i]=s;
judge=0;
}
else
{
s="";
judge=1;
if(str[0]!=s)
i++;
}
}
maxs=str[0];
mins=str[0];
for(int i=0;i<200;i++)
{
if(str[i].size() > maxs.size()){
maxs = str[i];
}
if(!str[i].empty() && str[i].size() < mins.size()){
mins = str[i];
}
}
cout<<maxs<<endl<<mins;
}
5.在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。
#include <iostream>
#include <string>
using namespace std;
int main() {
char s[90];
gets(s);
for(int i=0;s[i];i++)
{
if(isalpha(s[i]))
{
if(s[i]=='z')
{
s[i]='a';
}
else if(s[i]=='Z')
{
s[i]='A';
}
else
s[i]=(char)((int)s[i]+1);
}
}
cout<<s;
}