c - 从 C 中的字符串中删除字符

标签 c arrays replace char

我只能访问“C”并且需要替换字符数组中的字符。对于这个相对简单的过程,我还没有想出任何干净的解决方案。

我收到了一个字符数组,例如:

char strBuffer[] = "/html/scorm12/course/course_index.jsp?user_id=100000232&course_id=100000879&course_prefix=ACQ&version=2&scorm_version=3&roster_id=100011365&course_name=Test%20Course%201.2&mode=browse&course_number=0000&mode_id=1";

我需要修改此缓冲区以将所有 & 替换为 &。生成的缓冲区不必覆盖 strBuffer(可以创建新缓冲区)。

有什么建议吗?

编辑:

过去我在一个循环中完成了 strstr 函数,但一直在寻找一个更简单的解决方案,也许是 C 中等效于 String.Replace 方法的解决方案。

编辑:

对于我的即时需求,以下是我所需要的。

char strBuffer[] = "/html/scorm12/course/course_index.jsp?user_id=100000232&course_id=100000879&course_prefix=ACQ&version=2&scorm_version=3&roster_id=100011365&course_name=Test%20Course%201.2&mode=browse&course_number=0000&mode_id=1";
char strTemp[1024];
char *s = (char*)strBuffer;
int i=0;

while (*s)
{
    strTemp[i++] = *s;
    if (strncmp(s,"&",5) == 0)
    {
        s += 5;
    }
    else
        s++;
}
strTemp[i] = 0;

future 的修改:

  • 创建一个实用函数来存储这个函数。
  • 将搜索字符串作为参数传递。
  • 确定搜索字符串的长度,以便删除硬编码的 5。
  • 动态分配 strTemp 变量。
  • 检查空字符串和未找到字符时出错。

编辑:

我创建了一篇博文来详细说明这些步骤并提供更灵活的解决方案:

http://www.solutionmaniacs.com/blog/2012/11/25/c-removereplace-characters-in-a-string.html

最佳答案

C 并不是因为它的易用性而出名,尤其是在涉及字符串时,但它有一些相当不错的标准库函数可以完成工作。如果您需要广泛研究字符串,您可能需要了解指针和指针算法,但除此之外,这里有一些库函数无疑会对您有所帮助:

  • strchr()在字符串中查找字符(例如,'&')。
  • strcmp()strncmp()比较两个字符串。
  • strstr()在字符串中查找子字符串(可能比使用 strchr()/strcmp() 组合更容易和更快)。
  • malloc()分配一个新的字符串。

关于c - 从 C 中的字符串中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1499939/

相关文章:

c - 三元并转换为 qsort 参数

python - Pandas:通过查找索引替换一系列值

mysql替换字符串中大括号中的正则表达式

c - 如何使用 C 选择数组中的多个元素?

javascript - 谷歌地图 LatLng 不是数字

linux - sed : How to replace pattern with file's contemt

c++ - 定位/下载头文件 R.h 和 Rmath 用于 C 与 R 接口(interface)

c - SPARC LEON 错误 : IU exception (tt = 0x2B, 数据存储错误)

python - 无法使用 LD_PRELOAD 拦截 PyDict_New

Java:为什么我能够引用具体参数化类型的非空数组?