【发布时间】:2015-03-24 20:35:11
【问题描述】:
我正在尝试编写一个函数,该函数允许我在字符串“src”中定位子字符串“from”,并在所有情况下将“from”子字符串替换为“to”子字符串,并输出新字符串通过“目的地”;但是我认为我的代码看起来有点不确定,而且我不明白(从概念上)我将如何返回带有 dest 的输出,因为输出是 void 类型。我想知道是否有人可以提供一些帮助?
例如:
find_replace("pooppoop poop", "poo", "hel", dest) should return
"helphelp help"
谢谢!
void find_replace(char* src, char* from, char* to, char* dest)
{
dest = (char * ) malloc(sizeof(src)+sizeof(from));
int i;
int j;
int check = 1;
for (i = 0; i <= strlen(src) - 1; i++) {
if (src[i] == from[0]) {
for (j = 0; j <= strlen(from) - 1; i++) {
if (src[i+j] != from[j]) {
check = 0;}
else {
continue;
}}}
if (check == 1) {
char * str3 = (char *) malloc(1 + strlen(&src[i]) + strlen(to));
strcpy(str3, &src[i]);
strcat(str3, to);
}
else { continue; }
}
return ;
【问题讨论】:
-
我无法按照你的函数逻辑,你能解释一下吗? str3 是什么?
-
所以我想我在编码方面很新,但想法是创建一个长度为“src”的字符数组(直到点 i,它与 from 匹配)和长度“到”。然后我想将 src[i] 复制到我创建的 str3 和 strcat str3 和 to 上,以便创建具有它们的新字符串。
标签: c arrays string pointers void