c:从字符串中删除两个字符

标签 c

我正在处理字符串:{()} 我的代码搜索第一个 ) 并替换它及其前面的字符 ( 带有空格,结果为 { }

我想要做的不是将匹配替换为空格,而是从字符串中删除括号,并使用我现有的代码再次递归地检查字符串。我正在尝试找到一种使用 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/

相关文章:

c - gettimeofday() 上的奇怪标记

c - 传递指向 typedef 数组的指针

c - 哪种语言有助于为有效的 C 程序创建报告

c - 将 Log_2 的位旋转破解扩展到 64 位

c++ - 访问 CUDA 中的结构成员?

c - 如何在宾果游戏中避免 TLE?

c - Linux 内核模块 - 创建目录

c++ - C和C++中的编译器优化和临时分配

c++ - void 函数返回 Int 和 Void

c - Unsigned Int 的最大值是 -1