修改字符串 (华为入职前练习)
来源:互联网 发布:usb hub 知乎 编辑:程序博客网 时间:2024/04/30 07:18
将给定字符串中连续出现3次的小写字母替换为改小写字母在字母表中的下一个字母(z变为a),大写字母和其他字符不处理,仍然保留。要求最终输出的字符串中不再存在任何连续出现3次的小写字母。
例如字符串”ATRcccert893#45ae”经过处理后应该为”ATRdert893#45ae”
详细描述:
接口说明
原型:
int ChangeString(char *pInStr,char *pOutStr)
输入参数:
char *pInStr 输入字符串
输出参数:
char *pOutStr 输出字符串,内存空间已分配好,可直接使用
返回值:
int 0:处理成功 -1:出现异常
限制:
无
举例:
pInStr:jkds*^*(HKEEEklIdddjilfff
pOutStr:jkds*^*(HKEEEklIejilg
#include "stdafx.h"#include "iostream"#include "string"using namespace std; int ChangeString(char *pInStr,char *pOutStr){int len=strlen(pInStr),i,j=0;char temp[999],c;bool flag=1;for (i=0;i<len;i++){if (pInStr[i]>='a' && pInStr[i]<='z' && flag){c=pInStr[i];if (c==pInStr[i+1] && c==pInStr[i+2]){flag=0;if (c=='z'){temp[j]='a';}elsetemp[j]=++c;j++;i=i+2;}else{temp[j]=pInStr[i];j++;}}else{temp[j]=pInStr[i];j++;}}temp[j]='\0';if (flag==1){int k=0,lenth=strlen(temp);for(k=0;k<=lenth;k++){pOutStr[k]=temp[k];}return 0;}ChangeString(temp,pOutStr);}int main(){char input[18]="fffgggATRer5#45ae",output[18]="\0";int k=ChangeString(input,output);cout<<"k="<<k<<endl<<output<<endl;return 0;}
0 0
- 修改字符串 (华为入职前练习)
- 华为机试题:修改字符串
- 周期串问题(华为入职前练习)
- jam计数法(华为入职前练习)
- Home+Work (华为入职前练习)
- [华为机试练习题]23.修改字符串
- 华为在线练习(1)
- 字符串压缩(华为)
- 查找同构数的数量 (华为入职前练习)
- 开心的小明(华为入职前练习)
- c++ 华为练习 四 删除字符串中的指定字符
- 华为机试练习---按字节数截取字符串
- 华为OJ(字符串通配符)
- 华为OJ(字符串匹配)
- 华为OJ(字符串分隔)
- 华为OJ(字符串排序)
- 华为OJ(字符串排序)
- (59)字符串练习
- LTE RLC理解(一)
- string 与char* char[]之间的转换
- MFC中(Edit)编辑框实现输出换行
- 纯C语言:贪心Prim算法生成树问题源码
- 【黑马训练营】"打开/保存"文件对话框的相关运用备忘
- 修改字符串 (华为入职前练习)
- 纯C语言:贪心Kruskal算法生成树源码
- C++读写文本文件
- 建立快捷方式
- 纯C语言:括号匹配源码
- Linux 进程间通信(IPC)之一 --- 消息队列
- centos 备份工具
- iptables—包过滤(网络层)防火墙
- stm32 备份寄存器 读写数据