题解 | #牛牛的替换#
牛牛的替换
https://www.nowcoder.com/practice/f2a107dbb99243798d3048a672e8f747
#include <stdio.h> #include <stdlib.h> /*第一行输入一个正整数 n 表示字符数组的长度,四个个字符分别 a1 和 a2 , a3 和 a4,表示把字符数组中 a1 全部替换成 a2,然后把 a3 全部替换成 a4(包括a1替换后产生的a2等于a3的情况) 第二行输入一个长度为 n 的字符数组。*/ int main() { int n,i; char a1,a2,a3,a4; scanf("%d %c %c %c %c",&n,&a1,&a2,&a3,&a4); char*str=(char*)malloc(n*sizeof(char));//用malloc创建一个存放字符的空间,n个字符的长度的大小的空间 for(int i=0;i<n;i++) { scanf("%s",str);//循环输入网字符串数组内,我们提供一个数组名就行了 } for(int i=0;i<n;i++) { if(str[i]==a1) { str[i]=a2; } if(str[i]==a3) { str[i]=a4; } printf("%c",str[i]);//将新数组打印出来,这里是%c而不是%s,因为str[i]是数组中的一个元素 } free(str);//将动态空间进行释放 str=NULL; return 0; } /* 还有一种方法就是直接将这个最后的打印放在循环外面, printf("%s",str);直接提供数组名,让他打印字符串*/