C++字符数组(4)

字串中数字个数

题目描述: 输入一行字符,统计出其中数字字符的个数。 输入 一行字符串,总长度不超过255。 输出 输出为1行,输出字符串里面数字字符的个数。

输入复制

Hi!Hello!123

输出复制

3

#include<iostream>
#include<iomanip>
#include<string.h> 
using namespace std;
int main()
{
	char a[110];
	cin.getline(a,110);
	int l=strlen(a);
	int cnt=0;
	for(int i=0;i<l;i++)
	{
		if(a[i]>=48&&a[i]<=57)
		{
			cnt++;
		}
	}
	cout<<cnt;
	
	
	return 0;
}

第一个只出现一次的字符

题目描述: 输入一行字符,输出只出现了一次的字符。 输入 一行字符串,总长度不超过255。 输出 输出为1行,输出字符串里面第一个只出现一次的字符。 样例

输入复制

assdsssacfsb

输出复制

d

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	char a[1100];
	int cnt[1100]={0}; 
	char cnt2[1100]={'\0'};
	cin>>a;
	int l=strlen(a);
	for(int i=0;i<l;i++)
	{
		bool f=true;
		for(int j=0;j<l;j++)
		{
			if(a[i]==cnt2[j])
			{
				cnt[j]++;
				f=false;
				break;
			}
		}
		if(f==true)
		{
			cnt2[i]=a[i];
			cnt[i]++;
		}
	}
	for(int i=0;i<l;i++)
	{
		if(cnt[i]==1)
		{
			cout<<cnt2[i];
			return 0;
		}
	}
	
	
	return 0;
 } 

所有只出现一次的字符

题目描述: 输入一行字符,输出只出现了一次的字符。 输入 一行字符串,总长度不超过255。 输出 输出为1行,输出字符串里面只出现一次的字符(按照字典序输出)。 样例

输入复制

pqssdsqdabc

输出复制

abcp

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	char a[1100];
	int cnt[1100]={0}; 
	char cnt2[1100]={'\0'};
	cin>>a;
	int l=strlen(a);
	for(int i=0;i<l;i++)
	{
		bool f=true;
		for(int j=0;j<l;j++)
		{
			if(a[i]==cnt2[j])
			{
				cnt[j]++;
				f=false;
				break;
			}
		}
		if(f==true)
		{
			cnt2[i]=a[i];
			cnt[i]++;
		}
	}
	for(int i=0;i<l;i++)
	{
		if(cnt[i]==1)
		{
			cout<<cnt2[i];
		}
	}
	
	
	return 0;
 } 

凯撒密码

题目描述:凯撒密码(Caesar)加密时会将明文中的 每个字母 都按照其在字母表中的顺序向后(或向前)移动固 定数目(循环移动)作为密文。例如,当偏移量是左移 3 的时候(解密时的密钥就是 3): 注意:a=0,b=1,。。。,z=25

ABCDEFGHIJKLMNOPQRSTUVWXYZ(明文字母表)

DEFGHIJKLMNOPQRSTUVWXYZABC(密文字母表)(上下对照使用)

输入 一行字符串,总长度不超过255。 输出 加密后的字符串. 样例

输入复制

HIJKLMNOPQ

输出复制

KLMNOPQRST

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	char a[1100];
	cin>>a;
	int l=strlen(a);
	for(int i=0;i<l;i++)
	{
		if(a[i]=='A')
		{
			a[i]='X';
		}
		else if(a[i]=='B')
		{
			a[i]='Y';
		}
		else if(a[i]=='C')
		{
			a[i]='Z';
		}
		else
		{
			a[i]=a[i]+3;
		}
	}
	cout<<a;
	
	
	return 0;
 } 

字符解密 题目描述 Julius Caesar曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样 就得到了密文。比如字符A用F来代替。如下是密文和明文中字符的对应关系。

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (密文)

V W X Y Z A B C D E F G H I J K L M N O P Q R S T U(明文)

你的任务是对给定的密文进行解密得到明文。 你需要注意的是,密文中出现的字母都是大写字母。密文中也包括非字母的字符,对这些字符不用进行解码。 输入 一行,给出密文,密文不为空,而且其中的字符数不超过200。 输出 输出一行,即密文对应的明文。 样例

输入复制

NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX

输出复制

IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	char a[1100];
	cin.getline(a,1100);
	int l=strlen(a);
	for(int i=0;i<l;i++)
	{
		if(a[i]=='A')
		{
			a[i]='V';
		}
		else if(a[i]=='B')
		{
			a[i]='W';
		}
		else if(a[i]=='C')
		{
			a[i]='X';
		}
		else if(a[i]=='D')
		{
			a[i]='Y';
		}
		else if(a[i]=='E')
		{
			a[i]='Z';
		}
		else if(a[i]>=65&&a[i]<=90)
		{
			a[i]=a[i]-5;
		}
	}
	cout<<a;
	
	
	return 0;
 } 

加密的病历单

题目描述: 小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。在药房实习期间,小英扎实的专业基础 获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被 加密过的一些伤员的名单。 经过研究,小英发现了如下加密规律:(括号中是一个“原文 -> 密文”的例子)

1. 原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz)

2. 逆序存储(abcd -> dcba )

3. 大小写反转(abXY -> ABxy)

输入 一个加密的字符串。(长度小于50且只包含大小写字母) 输出 输出解密后的字符串。

输入复制

VJx

输出复制

Amy

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	char a[1100];
	cin.getline(a,1100);
	int l=strlen(a);
	for(int i=0;i<l;i++)
	{
		if(a[i]=='X')
		{
			a[i]='A';
		}
		else if(a[i]=='Y')
		{
			a[i]='B';
		}
		else if(a[i]=='Z')
		{
			a[i]='C';
		}
		else if(a[i]=='x')
		{
			a[i]='a';
		}
		else if(a[i]=='y')
		{
			a[i]='b';
		}
		else if(a[i]=='z')
		{
			a[i]='c';
		}
		else
		{
			a[i]=a[i]+3;
		}
	}
	char b[1100];
	for(int i=0;i<l;i++)
	{
		b[i]=a[i];
	}
	int j=0;
	for(int i=l-1;i>=0;i--)
	{
		a[j]=b[i];
		j++;
	}
	for(int i=0;i<l;i++)
	{
		if(a[i]>=97&&a[i]<=122)
		{
			a[i]=a[i]-32;
		}
		else if(a[i]>=65&&a[i]<=90)
		{
			a[i]=a[i]+32;
		}
	}
	cout<<a;
	
	
	return 0;
}

字串中字母的个数

题目描述: 输入一行字符,统计出其中大写、小写字符的个数。 输入 一行字符串,总长度不超过255。 输出 输出为1行,输出字符串里面字母字符的个数。 样例

输入复制

Hello!I’m Amy!123

输出复制

10

#include<iostream>
#include<iomanip>
#include<string.h> 
using namespace std;
int main()
{
	char a[110];
	cin.getline(a,110);
	int l=strlen(a);
	int cnt=0;
	for(int i=0;i<l;i++)
	{
		if(a[i]>=65&&a[i]<=90)
		{
			cnt++;
		}
		else if(a[i]>=97&&a[i]<=122)
		{
			cnt++;
		}
	}
	cout<<cnt;
	
	
	return 0;
}

字串单词的个数

题目描述: 输入一行字符,统计出其中有多少单词 输入 一行字符串,总长度不超过255。 输出 输出为1行,输出单词的个数(单词用空格隔开的,可能间隔多个空格) 。 样例

输入复制

haha wget it wow123

输出复制

4

#include<iostream>
#include<iomanip>
#include<string.h> 
using namespace std;
int main()
{
	char a[110];
	cin.getline(a,110);
	int l=strlen(a);
	int cnt=1;
	for(int i=0;i<l;i++)
	{
		if(a[i]>='a'&&a[i]<='z'&&a[i-1]==' ')
		{
			cnt++;
		}
		else if(a[i]>='A'&&a[i]<='Z'&&a[i-1]==' ')
		{
			cnt++;
		}
	}
	cout<<cnt;
	
	
	return 0;
}

字符统计

题目描述: 输入一串小写字母(以‘.’为结束标志),统计出每个字母在该字符串中出现的次 数(若某字母不出现,则不要输出)。 要求:每行输出5项,每项以空格隔开。 输入 输入一行以'.'结束的字符串(字符串长度≤100) 输出 输出相应小写字母的个数。 样例

输入复制

aaaabbbccc.

输出复制

a:4 b:3 c:3

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	char a[110]={'\0'};
	cin.getline(a,110);
	int cnt[130]={0};
	int l=strlen(a);
	for(int i=0;i<l;i++)
	{
		if(a[i]=='.')
		{
			a[i]='\0';
			break;
		}
	}
	l=strlen(a);
	for(int i=0;i<l;i++)
	{
		cnt[a[i]]++;
	}
	for(int i=97;i<=122;i++)
	{
		if(cnt[i]!=0)
		{
			cout<<(char)i;
			cout<<":";
			cout<<cnt[i];
		}
	}
	
	
	return 0;
}

每个小写字母出现的次数

题目描述: 输入一串字符,统计出每个小写字母在该字符串中出现的次数(若某字母不出现,则不要输出)。 要求:每行输出5项,每项以空格隔开。 输入 输入一行以'.'结束的字符串(字符串长度≤100) 输出 输出相应小写字母的个数。 样例

输入复制

aaAASaDabbFbDc1c2c333.

输出复制

a:4 b:3 c:3

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	char a[110]={'\0'};
	cin.getline(a,110);
	int cnt[130]={0};
	int l=strlen(a);
	for(int i=0;i<l;i++)
	{
		if(a[i]=='.')
		{
			a[i]='\0';
			break;
		}
	}
	l=strlen(a);
	for(int i=0;i<l;i++)
	{
		cnt[a[i]]++;
	}
	for(int i=97;i<=122;i++)
	{
		if(cnt[i]!=0)
		{
			cout<<(char)i;
			cout<<":";
			cout<<cnt[i];
		}
	}
	
	
	return 0;
}

字符串加密

题目描述: 在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足 以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一 个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则 可得到一个简单的加密字符串。 输入 输入一行,包含一个字符串,长度小于80个字符。 输出 输出每行字符串的加密字符串。 样例

输入复制

Hello! How are you!

输出复制

Ifmmp! Ipx bsf zpv!

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	char a[1100];
	cin.getline(a,1100);
	int l=strlen(a);
	for(int i=0;i<l;i++)
	{
		if(a[i]=='z')
		{
			a[i]='a';
		}
		else if(a[i]=='Z')
		{
			a[i]='A';
		}
		else if(a[i]>=65&&a[i]<=89)
		{
			a[i]=a[i]+1;
		}
		else if(a[i]>=97&&a[i]<=121)
		{
			a[i]=a[i]+1;
		}
	}
	cout<<a;
	
	
	return 0;
}

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值