69,373
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int main()
{
int m, n, i, j;
char k[100] = {0}, a, b;
scanf("%d%d", &m, &n);
getchar();
for(i = 0; i < m; i++)
scanf("%c", &k[i]);
getchar();
for(i = 0; i < n; i++) {
scanf("%c %c", &a, &b);
for(j = 0; j < m; j++) {
if(k[j] == a)
k[j] = b;
else if(k[j] == b)
k[j]=a;
}
getchar();
}
for(i = 0; i < m; i++)
printf("%c",k[i]);
return 0;
}
还是%c搞的鬼,因为输入后回车符还在输入缓存里,下次的%c会吸收'\n',另外,scanf(%c %c", &a, &b);根据样例需要加个空格。
建议对于字符数组,直接使用fgets输入,这样可以规避这个问题。