我正在处理字符串:{()}
我的代码搜索第一个 )
并替换它及其前面的字符 (
带有空格,结果为 { }
我想要做的不是将匹配替换为空格,而是从字符串中删除括号,并使用我现有的代码再次递归地检查字符串。我正在尝试找到一种使用 memmove
或类似的方法来折叠剩余字符的方法
char openKey[] = "({<[";
char closeKey[] = ")}>]";
pch = strpbrk(parenthesesStack, closeKey);
while (pch != NULL)
{
if (opposits(*(pch-1),*pch)){
printf("%c %c\n" , *(pch-1), *pch);
memmove(pch-1," ",2);
}
pch = strpbrk (parenthesesStack,closeKey);
}
最佳答案
那么您想将字符串的其余部分向左移动 2 个位置?
试试这个:
memmove(pch-1, pch+1, strlen(pch+1) + 1);
关于c:从字符串中删除两个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13347329/