【发布时间】:2018-06-23 13:59:48
【问题描述】:
我想用我的字符串中的两个字符替换一个字符。
void strqclean(const char *buffer)
{
char *p = strchr(buffer,'?');
if (p != NULL)
*p = '\n';
}
int main(){
char **quest;
quest = malloc(10 * (sizeof(char*)));
quest[0] = strdup("Hello ?");
strqclean(quest[0]);
printf(quest[0]);
return;
}
这很好用,但实际上我想替换我的“?”通过“?\n”。 strcat 不适用于指针,对吗?我可以找到在我的字符串中添加一个字符并将其替换为“\n”的解决方案,但这不是我真正想要的。
谢谢!
【问题讨论】:
-
你不能 1) 修改
const字符串和 2) 添加比字符串可以包含的更多的数据。 -
请发布Minimal, Complete, and Verifiable example,它显示了您尝试过的内容。发布的代码不会编译(即使放在包装器中)。
*p = strchr(buffer,'?')==>char *p = strchr(buffer,'?') -
你的代码不应该工作,
buffer指向const字符串,你可以改变指针但不能改变它后面的内容。 -
@Pablo 不一定,因为它是一个参数。但还是错
-
@Jean-FrançoisFabre 是的,谢谢,我在按下 ENTER 后才意识到。
标签: c replace character strchr