我只能访问“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 并不是因为它的易用性而出名,尤其是在涉及字符串时,但它有一些相当不错的标准库函数可以完成工作。如果您需要广泛研究字符串,您可能需要了解指针和指针算法,但除此之外,这里有一些库函数无疑会对您有所帮助:
关于c - 从 C 中的字符串中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1499939/