问题描述
  相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了。今天,徐老师想测试一下大家对于字符串操作的掌握情况。徐老师自己定义了1,,,,5这5个参数分别指代不同的5种字符串操作,你需要根据传入的参数,按照徐老师的规定,对输入字符串进行格式转化。
  徐老师指定的操作如下:
   表示全部转化为大写字母输出,如abC 变成 ABC
   表示全部转换为小写字母输出,如abC变成abc
   表示将字符串整个逆序输出,如 abc 变成 cba
   表示将字符串中对应的大写字母转换为小写字母,而将其中的小写字母转化为大写字母输出,如 abC变成ABc
  5表示将全部转换为小写字母,并将其中所有的连续子串转换为对应的缩写形式输出,比如abcD 转换为a-d,其次,-至少代表1个字母,既如果是ab,则不需要转换为缩写形式。
输入格式
  一共一行,分别是指代对应操作的数字和字符串,两者以空格分隔,字符串全部由英文字母组成
输出格式
  输出根据上述规则转换后对应的字符串
样例输入
ABcdEE
样例输出
a-ee
数据规模和约定
  输入字符串长度最长为200。

AC代码:

 #include <stdio.h>
#include <string.h>
#define MAX 200 int main(void)
{
int i;
int n;
char arr[MAX+];
scanf("%d %s",&n,&arr);
switch(n)
{
/*全部转化为大写字母输出*/
case :
for (i = ; i < strlen(arr) ; i ++)
{
if (arr[i] >= 'a' && arr[i] <= 'z')
{
arr[i] -= ;
}
}
printf("%s",arr);
break;
/*全部转换为小写字母输出*/
case :
for (i = ; i < strlen(arr) ; i ++)
{
if (arr[i] >= 'A' && arr[i] <= 'Z')
{
arr[i] += ;
}
}
printf("%s",arr);
break;
/*将字符串整个逆序输出*/
case :
for (i = strlen(arr)- ; i >= ; i --)
{
printf("%c",arr[i]);
}
break;
/*将字符串中对应的大写字母转换为小写字母,小写变大写*/
case :
for (i = ; i < strlen(arr) ; i ++)
{
if (arr[i] >= 'A' && arr[i] <= 'Z')
{
arr[i] += ;
}
else if (arr[i] >= 'a' && arr[i] <= 'z')
{
arr[i] -= ;
}
}
printf("%s",arr);
break;
/*将全部转换为小写字母,
并将其中所有的连续字串转换为对应的缩写形式输出*/
case :
for (i = ; i < strlen(arr) ; i ++)
{
if (arr[i] >= 'A' && arr[i] <= 'Z')
{
arr[i] += ;
}
}
printf("%c",arr[]);
n = ;
for (i = ; i < strlen(arr) ; i ++)
{
if (arr[i]-arr[i-] == && arr[i+]-arr[i] == )
{
n ++;
continue;
}
if (n)
{
printf("-");
}
printf("%c",arr[i]);
n = ;
}
break;
default:
break;
} return ;
}

ALGO-143_蓝桥杯_算法训练_字符串变换的更多相关文章

  1. Java实现 蓝桥杯VIP 算法训练 连接字符串

    算法训练 连接字符串 时间限制:1.0s 内存限制:512.0MB 编程将两个字符串连接起来.例如country与side相连接成为countryside. 输入两行,每行一个字符串(只包含小写字母, ...

  2. Java实现 蓝桥杯VIP 算法训练 比较字符串

    算法训练 比较字符串 时间限制:1.0s 内存限制:512.0MB 编程实现两个字符串s1和s2的字典序比较.(保证每一个字符串不是另一个的前缀,且长度在100以内).若s1和s2相等,输出0:若它们 ...

  3. [蓝桥杯]ALGO-20.算法训练_求先序排列

    问题描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=). 输入格式 两行,每行一个字符串,分别表示中序和后序排列 输出格式 一个字符串,表示所求 ...

  4. [蓝桥杯]ALGO-16.算法训练_进制转换

    问题描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*102+2*101+3*100这样 ...

  5. [蓝桥杯]ALGO-15.算法训练_旅行家的预算

    问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和沿 ...

  6. [蓝桥杯]ALGO-124.算法训练_数字三角形

    问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●<三角形行数≤: ●三角 ...

  7. [蓝桥杯]ALGO-122.算法训练_未名湖边的烦恼

    问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩. 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个.现在 ...

  8. [蓝桥杯]ALGO-116.算法训练_最大的算式

    问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大.因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号 ...

  9. [蓝桥杯]ALGO-101.算法训练_图形显示

    问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * * * * * * * * 题目描述 代码如下: #include < ...

  10. [蓝桥杯]ALGO-97.算法训练_排序

    题目描述: 问题描述 编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列. 输入格式:输入只有一行,即三个整数,中间用空格隔开. 输出格式:输出只有一行,即排序后的结果. 输入输出 ...

随机推荐

  1. 【c++基础】字符数组和string相互转换

    字符数组转化成string类型char ch [] = "ABCDEFG";string str(ch);//也可string str = ch;或者char ch [] = &q ...

  2. python import 其他 package的模块

    https://blog.csdn.net/luo123n/article/details/49849649 http://blog.habnab.it/blog/2013/07/21/python- ...

  3. 动态开点线段树(陕西师范18k题)---get new skill

    思想: 每次开点的时候:左右孩子都开辟新空间 注意懒惰标记tag: 因为会向下传递        提前在值中减去懒惰标记,避免重复计算 链接:https://www.nowcoder.com/acm/ ...

  4. codefoce Cooking Time

    #include <bits/stdc++.h> using namespace std; struct T { // 贪心 优先弹出相邻靠后的材料 int id; int p; bool ...

  5. C++ 的简单输出输入 HDU 1089~1096

    A+B for Input-Output Practice (I) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...

  6. Kafka设计解析:Kafka High Availability

    Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永远不能再恢复,亦 ...

  7. stack 的一些用法

    #include<bits/stdc++.h> using namespace std; int32_t main() { stack<int> st; st.push(); ...

  8. 通过阻止 touchstart 事件,解决移动端的 BUG

    在 iOS10 下,即使设置了 meta 标签的 user-scalable=no 依然不能阻止用户缩放. 解决此 BUG 的方法是阻止 PC 事件: document.addEventListene ...

  9. nginx实现nginx/tomcat负载均衡

    准备三台centos7虚拟机,全部安装nginx或者tomcat 虚拟机A 10.0.3.46        在index.html 中添加10.0.3.46作为标志 虚拟机B 10.0.3.66   ...

  10. python基础(三)——类的研究

    class Employee: //定义类 以冒号结束 '所有员工的基类' //帮助信息 empCount = 0 def __init__(self, name, salary): //调用时初始化 ...