输入若干行密令,然后进行处理,要求如下:
①第一条密令的格式:I #s s#cy #d
其中若干个“#x”(x 表示要替换的类型)需要依次被后面几行密令进行替换。
②接下来若干行密令要按照第一条命令中“#x”出现的顺序依次在第一条密令中
进行替换,且保证密令的数据类型一一对应。x 为一个英文字符。
③输出替换后的密令
输入格式:
按照上面的要求输入若干行密令
输出格式:
一行字符串
输入样例 1:
I #s s#cy #d
should
a
666
输出样例 1:
I should say 666
输入样例 2:
H#sy H#c#seen
app
a
llow
输出样例 2:
Happy Halloween
聚合密令,输入若干行密令,然后进行处理
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-小桥流水 2022-10-25 19:02关注
查找#x并用后面输入的字符替换,运行结果如下:
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> //判断字符是否是英文字符 int isalpha(char c) { if (c >= 'a' && c <= 'z') return 1; if (c >= 'A' && c <= 'Z') return 1; return 0; } int main() { char ml[100]; //密令 char th[100]; //替换的字符串 int i = 1; int j = 0; char dst[200] = { 0 }; gets_s(ml); while (ml[i] != '\0' && ml[i]!='\n') { if (ml[i - 1] == '#' && isalpha(ml[i]) ) { gets_s(th); //读取替换字符 strcat(dst, th); j = strlen(dst); i++; } else { dst[j++] = ml[i-1]; } i++; } //最后一个字符 if (i >= 2 && ml[i - 2] != '+') dst[j] = ml[i - 1]; printf("%s", dst); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 linux驱动,linux应用,多线程
- ¥20 我要一个分身加定位两个功能的安卓app
- ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
- ¥15 IAR程序莫名变量多重定义
- ¥15 (标签-UDP|关键词-client)
- ¥15 关于库卡officelite无法与虚拟机通讯的问题
- ¥15 目标检测项目无法读取视频
- ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
- ¥100 求采集电商背景音乐的方法
- ¥15 数学建模竞赛求指导帮助