gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 15:14:35 25 4
gpt4 key购买 nike

我只能访问“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com