替换子串错误

时间:2012-12-04 09:35:41

标签: c substring

我在c.it中有一个子串问题没有正确更改子串。它必须找到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;
}

3 个答案:

答案 0 :(得分:1)

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

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

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

这些更改应解决问题。

答案 1 :(得分:0)

'foo'和'bars'不是字符

答案 2 :(得分:0)

首先,你的函数需要单个字符“old”和“new”但你想要替换子字符串..