问题描述
  相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了。今天,徐老师想测试一下大家对于字符串操作的掌握情况。徐老师自己定义了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. LAMP搭建个人网站

    最近发了一篇paper,需要把成果展示出来,想到正好想到自己有一个阿里云服务器,并且在万网上看到www.yongjieshi.com这个域名一年才50块钱,于是决定搭建一个自己的网站 如果linux玩 ...

  2. EasyUI datagrid easyui datagrid +dialog 加载 可直接运行 七

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta ht ...

  3. (20)jQuery的文档操作(创建,添加、设置样式和删除等)

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>jq ...

  4. C++学习(十三)(C语言部分)之 练习

    打印图像 要用循环 空心或者实心都可以1.矩形 菱形 三角形 梯形 六边形2.打印倒三角形的99乘法表 具体测试代码如下: /* 1.打印图像 要用循环 空心或者实心都可以 矩形 菱形 三角形 梯形 ...

  5. python 类编程相关内容(更新)

    python作为面向对象的编程语言,类和对象相关的编程当然是少不了的! python类: class 类名 : 变量名 [ = 初始值 ] …… def 函数名 ( self [ , 其余参数列表 ] ...

  6. 纯js常用的代码

    1.获取表单中某属性的值 var name = document.myform.myname.value; 2.表单提交时校验,相应js代码中需要返回true或者false <form name ...

  7. using python to compute production rules

    #coding=utf8 import loggingimport itertoolsimport reimport sys logger = logging.getLogger()root_form ...

  8. linux系统lnmp环境包搬家教程

    打包搬家apt-get install zip unzip -yyum install zip unzip -y# debian ubuntu 用apt-get,centos用yumcd /home/ ...

  9. debian 配置linuxptp 软件时间戳

    编程之路刚刚开始,错误难免,希望大家能够指出. ntp,ptp,ntp,ptp 本文只说软件时间戳 先上几个推荐的网址,可以更好的了解ptp: https://docs.fedoraproject.o ...

  10. 【liunx】Linux下的压缩和解压缩命令——jar

    原文链接:http://blog.chinaunix.net/uid-692788-id-2681136.html JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是 ...