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

Edw*_*eno 4 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";
Run Code Online (Sandbox Code Playgroud)

我需要修改这个缓冲,以取代所有&&.生成的缓冲区不必覆盖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;
Run Code Online (Sandbox Code Playgroud)

未来的修改:

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

编辑:

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

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

Chr*_*utz 6

C没有注意到它的易用性,特别是在字符串方面,但它有一些相当不错的标准库函数可以完成工作.如果你需要在字符串上进行广泛的工作,你可能需要了解指针和指针算法,但是这里有一些库函数无疑会对你有所帮助:

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