博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言 · 字符串变换
阅读量:5111 次
发布时间:2019-06-13

本文共 2360 字,大约阅读时间需要 7 分钟。

算法训练 字符串变换  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了。今天,徐老师想测试一下大家对于字符串操作的掌握情况。徐老师自己定义了1,2,3,4,5这5个参数分别指代不同的5种字符串操作,你需要根据传入的参数,按照徐老师的规定,对输入字符串进行格式转化。

  徐老师指定的操作如下:

  1 表示全部转化为大写字母输出,如abC 变成 ABC

  2 表示全部转换为小写字母输出,如abC变成abc

  3 表示将字符串整个逆序输出,如 abc 变成 cba

  4 表示将字符串中对应的大写字母转换为小写字母,而将其中的小写字母转化为大写字母输出,如 abC变成ABc

  5表示将全部转换为小写字母,并将其中所有的连续子串转换为对应的缩写形式输出,比如abcD 转换为a-d,其次,-至少代表1个字母,既如果是ab,则不需要转换为缩写形式。
输入格式
  一共一行,分别是指代对应操作的数字和字符串,两者以空格分隔,字符串全部由英文字母组成
输出格式
  输出根据上述规则转换后对应的字符串
样例输入
5 ABcdEE
样例输出
a-ee
数据规模和约定
  输入字符串长度最长为200。

 

作者注释:学会了运用C中的大小写转换函数:toupper(转换成大写)、tolower(转换成小写),头文件:ctype.h。

代码如下:

1 #include
2 #include
3 #include
4 void n1(char s[],int len){ 5 for(int i = 0; i < len; i++) { 6 s[i] = toupper(s[i]); 7 } 8 printf("%s",s); 9 }10 void n2(char s[],int len){11 for(int i = 0; i < len; i++) {12 s[i] = tolower(s[i]);13 }14 printf("%s",s);15 }16 void n3(char s[],int len){17 for(int i = len-1; i >= 0; i--) {18 printf("%c",s[i]);19 }20 }21 void n4(char s[],int len){22 for(int i = 0; i < len; i++) {23 if(isupper(s[i]))24 s[i] = tolower(s[i]);25 else26 s[i] = toupper(s[i]);27 }28 printf("%s",s);29 }30 void n5(char s[],int len) {31 for(int i = 0; i < len; i++) {32 s[i] = tolower(s[i]);//全部转换为小写字母33 }34 int i=0,j;35 while(s[i]){36 printf("%c",s[i]);37 if(s[i+1]==s[i]+1 && s[i+2]==s[i+1]+1){38 printf("-");39 for(i=i+3;;i++){40 if(s[i]!=s[i-1]+1){41 printf("%c",s[i-1]);42 break;43 }44 }45 i--;46 }47 i++;48 }49 printf("\n");50 }51 int main() {52 int n;53 scanf("%d",&n);54 char s[200];55 gets(s);56 int len = strlen(s);57 switch(n) {58 case 1://全部转化为大写字母59 n1(s,len);60 break;61 case 2://全部转换为小写字母62 n2(s,len);63 break;64 case 4:65 n4(s,len);66 break;67 case 3:68 n3(s,len);69 break;70 case 5:71 n5(s,len);72 break;73 }74 return 0;75 }

 

转载于:https://www.cnblogs.com/panweiwei/p/6550147.html

你可能感兴趣的文章
460. LFU Cache
查看>>
DB2中OLAP函数使用示例
查看>>
Android调试工具 —— MAT [整理]
查看>>
ES6 之 let和const、块级作用域
查看>>
hello,world!
查看>>
学习web前端开发感想
查看>>
百度地图API,定位您的当前位置
查看>>
写一个jquery弹出层插件gbox,简单多功能...
查看>>
JavaScript的一些CheckData函数
查看>>
JSP 手记
查看>>
df和du显示的磁盘空间使用情况不一致的原因及处理
查看>>
[无关] 胡言乱语3
查看>>
Leetcode 29. Divide Two Integers
查看>>
thinkPHP--SQL查询
查看>>
winrar 弹窗处理
查看>>
关于IO流的抽象类
查看>>
2019.1.26
查看>>
伪静态的实现方法:IIS环境下配置
查看>>
Selenium-webdriver系列教程(三)————如何执行一段js脚本
查看>>
使用debussy完成自动仿真
查看>>