输入若干行密令,然后进行处理,要求如下:
①第一条密令的格式: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; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录