字符替换

总时间限制: 
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;
}

猜你喜欢

转载自blog.csdn.net/yang_2002/article/details/79624213