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