输入若干行密令,然后进行处理,要求如下:
①第一条密令的格式: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
查找#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;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!