算法练习-day12 字符串替换


算法练习
算法练习-day01 判断质数和找出计算完全数
算法练习-day02 统计字符串中字符种类的个数和求两数的最小公倍数
算法练习-day03 小球下落走过的距离和自动判定程序
算法练习-day04 统计字符串中某字符出现的次数
算法练习-day05 反转输出链表
算法练习-day06 字符串法转
算法练习-day07 统计每个月兔子的总数
算法练习-day09 5个数求最值和ASCLL码排序
算法练习-day10 奇偶数分离
算法练习-day11 鸡兔同笼


题目:字符串替换

编写一个程序将字符串的所有的‘you’替换成‘we’

  • 输入
    输入包含多行数据,每行数据是一个字符串,长度不超过1000
    ,数据以EOF结束
  • 输出
    对于输入的每一行,输出替换后的字符串

思路

用gets函数接收字符串,接着循环匹配you,只有当字符串连着三个字符与you匹配时打印出we否则就直接打印原来的字符

算法实现

include<stdio.h>
#include<string.h>
int main()
{
	char s[1000];
	while (gets(s)) {
		int len = strlen(s);//接收字符串长度
		for (int i = 0; i < len; i++)
		{

			if (s[i] == 'y' && s[i + 1] == 'o' && s[i + 2] == 'u')
			{
				printf("we");
				i=i + 2;//因为如果匹配成功则是三个字符一起被消耗掉,所以在这里要给i+2
			}
			else
			{
				printf("%c", s[i]);
			}
		}
		printf("\n");

	}
	return 0;

}

示例

image.png

总结

今天写这题差点翻车,上午正好在看数据结构的串那块,结果想着会不会用串的基本操作来实现会简单些,没想到很麻烦,有点思维定式的样子,然后想了想直接用条件语句判断三个连续字符是否与‘you’相等不就行了嘛,还,今天是小傻瓜的一天。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值