2446 | 统计字符 | 简单 | 15 | 66% | ||
2466 | 判断回文串 | 简单 | 19 | 57% | ||
3418 | 分数最高的同学 | 简单 | 35 | 57% | ||
2455 | 拼接姓名 | 简单+ | 28 | 35% | ||
2470 | 字符串判等 | 简单+ | 45 | 35% | ||
2457 | 首尾互换 | 简单+ | 76 | 13% | ||
2450 | 逗号分割 | 简单+ | 16 | 68% | ||
1270 | 比大小 | 简单+ | 65 | 40% | ||
5003 | 统计字母出现的概率 | 简单+ | 198 | 45% |
2446 统计字符
描述
从键盘输入一个由英文字母和阿拉伯数字(含空格)组成的字符串,统计字符串的长度和字符串中数字的个数。
输入描述
1.输入字符串的长度不超过1000;
2.计算所输入的字符串的长度(有效字符的个数);
3.计算所输入字符串中阿拉伯数字的个数;
输出描述
1)计算所输入的字符串的长度(有效字符的个数),并输出;
2)计算所输入字符串中阿拉伯数字的个数,并输出;
样例输入 1
There are 5 apples and 8 oranges
样例输出 1
32 2
提示
1.接收字符串的输入,含空格
2.统计字符串的长度。
从字符串的第一个字符开始,依次访问字符串中的每一个字符,访问的过程中使用一个整数变量i进行字符的个数的统计,直到遇到0为止。
3.遍历字符串的过程中,判断当前字符是否为阿拉伯数字,如果是则计数变量c++。
4.按要求输出。
#include <iostream>
using namespace std;
int main(){
char arr[1001];
int i=0, cnt=0;
cin.getline(arr, 1001);
while(arr[i]!='\0'){
i++;
if(arr[i]>='0' && arr[i]<='9'){
cnt++;
}
}
cout<<i<<"\n";
cout<<cnt;
return 0;
}
2466 判断回文串
描述
若一个字符串(字符串的长度不超过100,不包含空格)正向和反向读起来相同,我们则称之为回文串。
- 字符串"aba"正向和反向读起来都是"aba",所以是回文串;
- 字符串"abcd"正向读起来是"abcd",反向读起来是"dcba",所以不是回文串。
输入描述
第一行是需要判断的字符串(字符串中不包含空格),长度小于100。
输出描述
若字符串是回文串,则输出Yes,否则输出No。
样例输入 1
aba
样例输出 1
Yes
#include <bits/stdc++.h>
using namespace std;
int main(){
char a[101];
cin>>a;
int l=0, r=strlen(a)-1;
while(l<r){
if(a[l]==a[r]){
l++;
r--;
}else break;
}
if(l>=r) cout<<"Yes";
else cout<<"No";
return 0;
}
3418 分数最高的同学
描述
已知n位同学的姓名和CSPJ复赛得分(姓名是一个不包含空格的字符串,长度不超过200;0<分数≤400),请输出分数最高的同学的姓名。
输入描述
第1行是一个正整数n(0<n<500),表示学生的人数;
接下来的n行,每行一个字符串和一个整数,用空格隔开,表示一位学生的姓名和成绩。
输出描述
一个字符串,表示分数最高的同学的姓名。若有多个同学的分数都是最高分,输出最先输入的那个。
样例输入 1
5 mayun 88 dinglei 95 lilei 92 wangshan 98 chenhong 77
样例输出 1
wangshan
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, max=0, sc;
char name[205], res[205]="";
cin>>n;
for(int i = 1 ; i <= n ; i++){
cin>>name>>sc;
if(sc>max){
max=sc;
strcpy(res, name);
}
}
cout<<res;
return 0;
}
2455 拼接姓名
描述
从键盘输入两个姓名字符串(全部小写字母,且不含空格),按照英文字母的顺序,比较两个姓名的大小,由小到大拼接成一个字符串并输出。
输入描述
- 从键盘输入两个姓名字符串(长度不超过100),分别使用两个字符数组保存;
- 按照英文字母顺序,比较两个姓名字符串的大小;
- 按照由小到大的顺序拼接,并输出
输出描述
按照由小到大的顺序拼接,并输出
样例输入 1
zhenghong zhangsan
样例输出 1
zhangsanzhenghong
#include <bits/stdc++.h>
using namespace std;
int main(){
// 创建两个字符数组用于保存输入的字符串
char a[101], b[101];
cin>>a>>b;
if(strcmp(a, b) > 0){
cout<<b<<a;
}else{
cout<<a<<b;
}
// 使用strcmp比较两个字符串
return 0;
}
2470 字符串判等
描述
判断两个可能含有空格的字符串,在忽略空格后是否相等。
输入描述
两行,每行包含一个字符串(长度不超过255)。
输出描述
若两个字符串相等,输出YES,否则输出NO。
样例输入 1
aB c a bc
样例输出 1
NO
样例输入 2
1 23 12 3
样例输出 2
YES
#include <bits/stdc++.h>
using namespace std;
int main(){
char a[260]={0},b[260]={0},a1[260]={0},b1[260]={0};
cin.getline(a, 260);
cin.getline(b, 260);
int ai=0, bi=0;
for(int i=1; i<strlen(a) ; i++){
if(a[i]==' '){
continue;
}
a1[ai++]=a[i];
}
for(int i=1 ; i<strlen(b) ; i++){
if(b[i]==' '){
continue;
}
b1[bi++]=b[i];
}
if(strcmp(a1, b1)==0){
cout<<"YES";
}else{
cout<<"NO";
}
return 0;
}
2457 首尾互换
描述
编写程序,输入一个字符串(长度不超过50,首尾非空格),将字符串的首尾字符互换位置,保存至新的字符数组中,将其拼接在原字符串后面。
输入描述
一个字符串(长度不超过50,首尾非空格)。
输出描述
一个字符串,拼接之后的字符串。
样例输入 1
Hello
样例输出 1
HellooellH
#include <bits/stdc++.h>
using namespace std;
int main(){
char c1[51]={}, c2[52]={};
cin.getline(c1, 51);
int n=strlen(c1);
c2[0] = c1[n-1];
c2[n-1] = c1[0];
for(int i = 1 ; i <= n-2 ; i++){
c2[i] = c1[i];
}
strcat(c1, c2);
cout<<c1;
return 0;
}
2450 逗号分割
描述
编写程序,输入字符串(其中必须包含英文逗号,可以包含空格,长度不超过100),请输出字符串中逗号之前的所有内容。
输入描述
一个字符串(长度不超过100)。
输出描述
一个字符串。
样例输入 1
Hello everyone,welcome to code!
样例输出 1
Hello everyone
#include <bits/stdc++.h>
using namespace std;
int main() {
char a[103];
cin.getline(a, 103);
for(int i = 0 ; i <= strlen(a) ; i++){
if(a[i]==','){
break;
}else{
cout<<a[i];
}
}
return 0;
}
1270 比大小
描述
输入两个正整数(整数 ≤10100),输出其中大的那个整数。
输入描述
一行 2 个整数,之间空格隔开。
输出描述
输出大的那个数。
样例输入 1
12346 741254
样例输出 1
741254
#include <bits/stdc++.h>
using namespace std;
int main(){
char a[105], b[105];
cin>>a>>b;
if(strlen(a)==strlen(b)){
if(strcmp(a, b) > 0){
cout<<a;
}else{
cout<<b;
}
}else{
if(strlen(a)>strlen(b)){
cout<<a;
}else{
cout<<b;
}
}
return 0;
}
5003 统计字母出现的概率
描述
求指定字符串中给定字母出现的概率,结果保留两位小数。例如,给定的字母为a,字符串为apple,那么输出的结果为20.00%。
输入描述
两行。
第一行为给定的一个字符,第二行为一个字符串,字符串中可能有空格,字符串长度不超100。
输出描述
字符在字符串中出现的概率。保留2位小数
样例输入 1
a morning
样例输出 1
0.00%
#include <bits/stdc++.h>
using namespace std;
int main(){
char c, a[101];
double b=0;
cin>>c>>a;
for(int i = 0 ; i < strlen(a) ; i++){
if(a[i]==c){
b++;
}
}
cout<<fixed<<setprecision(2)<<(b*100)/(strlen(a))*1.0<<"%";
return 0;
}
感谢观看