我在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;
}
答案 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”但你想要替换子字符串..