【发布时间】:2015-03-24 21:11:54
【问题描述】:
我正在尝试编写一个函数,该函数允许我在字符串“src”中定位子字符串“from”,并在所有情况下将“from”子字符串替换为“to”子字符串,并输出新字符串通过“目的地”
void find_replace(char* src, char* from, char* to, char* dest)
{
dest = (char * ) malloc(sizeof(src)+sizeof(from));
char * stringcomb;
int i;
int j;
stringcomb = strstr(src, from);
strncpy(stringcomb, to, strlen(to));
puts (src);
return ;
}
int main (int argc, char *argv[])
{
char* dest;
}
【问题讨论】:
-
sizeof(src) + sizeof(form)是错误的,假设在src字符串中有n出现to并且sizeof()没有给你字符串的长度,你仍然缺少终止'\0'的空间,太多的问题......几分钟前你刚刚问了几乎相同的问题。 -
知道了,所以我把它换成了strlen(src)+strlen(from)。这会有很大的不同吗?
-
您的代码无法编译。缺少
}。此外,dest未使用。 -
希望你能帮助我,但我在想(我没有这样做,因为我不太确定......)我可以做 dest = strstr(src, from) ; stringcpy(dest, to, strlen(to));放 (src) ;
标签: c arrays string pointers void