1962 Problem D:单词转换
//麻烦大神帮忙看一下这个代码问题出在哪里,自己跑感觉没有问题啊。输入输出都是符合要求的,格式也没问题。就是一直是不对。
#include<cstdio>
#include<cstring>
int main() {
char str[150];
while(gets(str) != NULL) {
char a[150];
char b[150];
gets(a);
gets(b);
int lenstr = strlen(str);
char cmp[150];
char final[150];
memset(final,0,101);
int k = 0;
int lenfinal = 0;
for(int i = 0; i < lenstr + 1; i++) {
if(str[i] == ' ' || str[i] == '\0') {
cmp[k] = '\0';
k = 0;
if(strcmp(cmp,a) == 0) {
strcat(final,b);
lenfinal = strlen(final);
final[lenfinal] = ' ';
} else {
strcat(final,cmp);
lenfinal = strlen(final);
final[lenfinal] = ' ';
}
continue;
}
cmp[k++] = str[i];
}
lenfinal = strlen(final);
final[lenfinal - 1] = '\0';
puts(final);
//final[0] = '\0';
}
return 0;
}
//下面这个是找的别人的参考代码
#include<stdio.h>
#include<string.h>
int main() {
char arr[101][101],a[101],b[101];
int i,j;
while(scanf("%s",arr[0])!=EOF) {
i=1;
while(getchar()!='\n')
scanf("%s",arr[i++]);
scanf("%s",a);
scanf("%s",b);
//找出单词并替换
for(j=0; j<i-1; j++) {
if(strcmp(a,arr[j])==0) { //说明相等
printf("%s ",b);
} else {
printf("%s ",arr[j]);
}
}
if(strcmp(a,arr[j])==0) { //说明相等
printf("%s",b);
} else {
printf("%s",arr[j]);
}
printf("\n");
}
return 0;
}