题目:
编写一个C程序实现将字符串中的所有"you"替换成"we"
Input
输入包含多行数据
每行数据是一个字符串,长度不超过1000
数据以EOF结束
Output
对于输入的每一行,输出替换后的字符串
Sample Input
you are what you do
Sample Output
we are what we do
完整代码:
#include<stdio.h>
#include<string.h>
int main()
{
char str[1005];
int i,n;
//memset(str,'\0',sizeof(str));
while(gets(str)!=NULL)
{
i=0;
n=strlen(str);
//printf("%d",i);
for(i=0;i<n;i++)
{
if(str[i]=='y'&&str[i+1]=='o'&&str[i+2]=='u')
{
printf("we");
i=i+2;
}
else
{
printf("%c",str[i]);
}
//printf("%d",i);
}
printf("\n");
memset(str,'\0',sizeof(str));
}
}
总结:
这个题单词的修改,
原本的思路是,一个一个单词进行比较是否相等(strcmp),发现这样我不能实现多实例情况,后来发现不如使用一个字符一个字符的进行比较,这样不要考虑空格、‘\0’等情况。改为单字符比较后 只用考虑是否为you就成
细节:
while(gets(str)!=NULL)这里的字符输入不能为负 EOF为-1,所以这里应该用NULL(为空,为0),或直接写0都可以,