解题思路:swicth语句进行操作选项
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
void del(char *ch,char c){
int i,key;
for(i=0;*(ch+i)!='\0';i++)
if(*(ch+i)==c){
key=i;break;
}
for(i=key;*(ch+i)!='\0';i++)
*(ch+i)=*(ch+i+1);
}
void add(char *ch,char c,char r){
int i,key,len;
for(i=0;*(ch+i)!='\0';i++)
if(*(ch+i)==c){
key=i; //利用key循环覆盖,来查找到最后一个符合要求的字母
}
len=i;
for(i=len;i>key;i--)
*(ch+i)=*(ch+i-1);
*(ch+key)=r;
*(ch+len+1)='\0';
}
void replace(char *ch,char c,char r){
int i;
for(i=0;*(ch+i)!='\0';i++)
if(*(ch+i)==c){
*(ch+i)=r;
}
}
int main()
{
char str[50],sel,ch,re;
gets(str);
scanf("%c %c",&sel,&ch);
if(sel != 'D')
scanf(" %c",&re); //我的想法是:排除删除操作,其余可以输入需要添加或替换的字母!但我也不确定原理!如果有可以进一步修改,望告知,谢谢各位啦!
else
re = 0;
switch(sel){
case 'D': del(str,ch); break;
case 'I': add(str,ch,re); break;
case 'R': replace(str,ch,re); break;
}
printf("%s\n",str);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复