算法练习-day12 字符串替换

120 阅读1分钟

题目:字符串替换

 编写一个程序将字符串的所有的‘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’相等不就行了嘛,还,今天是小傻瓜的一天。