0

cに部分文字列の問題があります。部分文字列が適切に変更されていません。fooを見つけて他のものに置き換える必要がありますが、変更できません。「o」の部分を変更するだけです。手伝ってください。

#include <stdio.h>
#include <string.h>

char *replace(char *s, char old, char newer)
{
char *p = &s[0];

while(*p)
{
if(*p == old)
*p = newer;

p++;
}

return s;
}

int main()
{
char mystr[250];
printf("enter ");
gets(mystr);
puts(replace(mystr, 'foo', 'bars'));
return 0;
}
4

3 に答える 3

1
char *replace(char *s, char *old, char *newer)
{
...

if(*p == *old){
    *p = *newer;
    old++; newer++;
}
...

puts(replace(mystr, "foo", "bars"));

これらの変更により、問題が修正されるはずです。

于 2012-12-04T09:58:17.410 に答える
0

「foo」と「bars」は文字ではありません

于 2012-12-04T09:38:37.200 に答える
0

まず、関数は「古い」および「新しい」単一の文字を取りますが、部分文字列を置き換えたい..

于 2012-12-04T09:41:22.693 に答える