gpt4 book ai didi

c - 替换C中字符串的元素

转载 作者:行者123 更新时间:2023-11-30 20:29:27 25 4
gpt4 key购买 nike

斯宾克斯兄弟在东京警察厅总部安放了一枚炸弹。相当方便的是,他们留下了一个字符串 S(当然是加密的)作为拆除炸弹的 key ,但是还有更多。警方根据之前与狮身人面像兄弟的遭遇推断出可能的情况解密。字符串中的某些字母需要根据需要替换为其他字母与解密模式。解密的信件有可能被再次解密/替换。您需要替换字符串中的每个字母,直到无法进一步替换为止,以获得 key 。他们要求你尽快做到这一点,因为总部的炸弹即将爆炸现在随时爆炸。

输入

第一行包含仅由小写字母组成的字符串 S (1 ≤ |S| ≤ 105)。下一行有一个单个整数M(1≤M≤325),表示替换次数。接下来的 M 行有两个间隔字符 ci 和 di,其中 di 是 ci 的替换。

输出

打印所有字符替换后的最终字符串。

注意

保证不存在循环替换。

输入

nineandeleven

5

n l

l u

u w

e a

a y

输出

wiwyywdywyvyw

这就是我的编码方式。我无法接受超过 3 行的输入

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
char str[100000];
scanf("%s",str);
int M;
char x,y;
scanf("%d",&M);


for(int i=0;i<M;i++){
scanf("%c %c",&x,&y);
for(int j=0;j<strlen(str);j++){
if(str[j] == x) { str[j]=y;}
}
}

printf("%s",str);
return 0;
}

最佳答案

scanf("%c %c",&x,&y); 

更改为

scanf(" %c %c",&x,&y);

还有一个空间

因为当你输入“enter”时

将把换行符(windows.linux 可能有点不同,比如 \t\n \n 如果你想知道 google 一下)到你的缓冲区

当你使用%c时,会读取你最后插入的内容而不是跳转空格,'\n''\t'

当您在%c前面添加空格时

scanf 将在读取缓冲区之前跳转空格、'\n''\t',然后通过键盘获取正确的输入

关于c - 替换C中字符串的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com