算法训练 字符串变换  
时间限制: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。

代码如下:

 #include<stdio.h>
#include<ctype.h>
#include<string.h>
void n1(char s[],int len){
for(int i = ; i < len; i++) {
s[i] = toupper(s[i]);
}
printf("%s",s);
}
void n2(char s[],int len){
for(int i = ; i < len; i++) {
s[i] = tolower(s[i]);
}
printf("%s",s);
}
void n3(char s[],int len){
for(int i = len-; i >= ; i--) {
printf("%c",s[i]);
}
}
void n4(char s[],int len){
for(int i = ; i < len; i++) {
if(isupper(s[i]))
s[i] = tolower(s[i]);
else
s[i] = toupper(s[i]);
}
printf("%s",s);
}
void n5(char s[],int len) {
for(int i = ; i < len; i++) {
s[i] = tolower(s[i]);//全部转换为小写字母
}
int i=,j;
while(s[i]){
printf("%c",s[i]);
if(s[i+]==s[i]+ && s[i+]==s[i+]+){
printf("-");
for(i=i+;;i++){
if(s[i]!=s[i-]+){
printf("%c",s[i-]);
break;
}
}
i--;
}
i++;
}
printf("\n");
}
int main() {
int n;
scanf("%d",&n);
char s[];
gets(s);
int len = strlen(s);
switch(n) {
case ://全部转化为大写字母
n1(s,len);
break;
case ://全部转换为小写字母
n2(s,len);
break;
case :
n4(s,len);
break;
case :
n3(s,len);
break;
case :
n5(s,len);
break;
}
return ;
}

C语言 · 字符串变换的更多相关文章

  1. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

  2. C语言字符串拷贝

    C语言字符串拷贝利用指针操作,要清楚知道指针的指向 代码如下: #include <stdio.h> #include <assert.h> #include <stri ...

  3. C语言字符串长度(转)

    C语言字符串长度的计算是编程时常用到的,也是求职时必考的一项. C语言本身不限制字符串的长度,因而程序必须扫描完整个字符串后才能确定字符串的长度. 在程序里,一般会用strlen()函数或sizeof ...

  4. C语言字符串操作常用库函数

    C语言字符串操作常用库函数 *********************************************************************************** 函数 ...

  5. c语言字符串操作大全

     C语言字符串操作函数 函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #incl ...

  6. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  7. C 语言字符串连接的 3种方式

    C 语言字符串连接的 3种方式 #include<stdio.h> #include<stdlib.h> #include<string.h> char *join ...

  8. C语言字符串声明

    重新学习C语言字符串声明char *a="nihao";char a[]="nihao";什么区别?前者定义的是指针,并且指向字符串常量“nihao”,后者是字 ...

  9. C语言字符串操作函数整理

    整理C语言字符串相关的函数,以程序方式验证,以注释方式做说明. #include<stdio.h> #include<string.h> #include<stdlib. ...

随机推荐

  1. SQL Tuning Advisor

    SQL Tuning Advisorsql调优顾问可提供的建议有:-收集对象的统计信息-创建索引-重写sql语句-创建sql profile-创建sql plan baseline SQL Tunin ...

  2. git 使用经验与技巧总结 (不断更新中)

    git 使用技巧总结   说明: 本地repo已经有啦,对应的远程repo 为tiger, 本地分支为master.    问题一: 当拉取代码的remote repo仓库为tiger, 而现在要将修 ...

  3. linux中合并多个文件内容到一个文件的例子

    尊敬的用户您好,从即日起 导入 及 导出 功能已经下线,请到阿里云官方数据库管理平台 iDB Cloud 使用该功能! 继续在 iDB Cloud 中发现导出的数据库文件是按照每个表生成的SQL文件, ...

  4. 第2章 Python基础-字符编码&数据类型 购物车&多级菜单 作业

    作业 一.三级菜单 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, ...

  5. Maven 遇到的问题记录及解决

    1. 打包或clean时报错:To see the full stack trace of the errors, re-run Maven with the -e switch [WARNING] ...

  6. Android长度单位详解(dp、sp、px、in、pt、mm、dip)

    Android中定义的dimension单位有以下这些:px(Pixels ,像素):对应屏幕上的实际像素点.in(Inches ,英寸):屏幕物理长度单位.mm(Millimeters ,毫米):屏 ...

  7. URL中#号的含义

    一.#的涵义 #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如, http://www.example.com/index.html#print 就代表网页index.html的prin ...

  8. glide 镜像

    运行glide install 失败  国内墙的原因, 某些网站上不去 [ERROR]Update failed for golang.org/x/crypto: Cannot detect VCS ...

  9. Android基础知识之String类使用详解

    原文:http://android.eoe.cn/topic/android_sdk 字符串资源为你的应用程序提供了可以选择的文本样式和格式的文本.这里有三种类型的资源可以为你的应用程序提供字符串. ...

  10. android studio(AS) Duplicate files copied in APK META-INF/NOTICE.txt

    File 1: /home/slava/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.3.1/f789 ...