- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
把一个字符串中特定的字符全部用给定的字符替换,得到一个新的字符串。
- 输入
-
只有一行,由一个字符串和两个字符组成,中间用单个空格隔开。字符串是待替换的字符串,字符串长度
小于等于30个字符,且不含空格等空白符;
接下来一个字符为需要被替换的特定字符;
接下来一个字符为用于替换的给定字符。 - 输出
- 一行,即替换后的字符串。
- 样例输入
-
hello-how-are-you o O
- 样例输出
-
hellO-hOw-are-yOu
- 来源
计算概论05
可能是因为个人太菜的缘故,所以选择了C++
用C语言打感觉没毛病一脸自信满满,结果运行的时候发现...
感觉有点蒙...
运行失败的C语言的代码如下:
#include<stdio.h> #include<string.h> char a[31]={0}; char k1,k2; int i,length; int main() { scanf("%s %c %c",a,&k1,&k2); length=strlen(a); for(i=0;i<length;i++) { if(a[i]==k1) { printf("%c",k2); } else printf("%s",&a[i]); } return 0; }
通过的C++源代码如下:
#include<iostream> #include<cstdio> #include<cstring> char a[31]={0}; char k1,k2; int i,length; using namespace std; int main() { cin>>a>>k1>>k2; length=strlen(a); for(i=0;i<length;i++) { if(a[i]==k1) { cout<<k2; } else cout<<a[i]; } return 0; }
续:
今天晚上在老师的指导下发现了毛病...
输出句应该是
printf("%c",s[i]);
所以C语言版本的来了...
源代码如下:
#include<stdio.h> #include<string.h> int main() { char s[31],a,b; int i,L; //freopen("1.cpp","r",stdin); scanf("%s %c %c",s,&a,&b); L=strlen(s); for(i=0;i<L;i++) { if(s[i]==a)printf("%c",b); else printf("%c",s[i]); } return 0; }