我只能访问“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;
未来的修改:
- 创建一个效用函数来存储这个功能。
- 通过搜索字符串作为参数。
- 确定搜索字符串的长度,所以硬编码5的可以被删除。
- 动态分配strTemp变量。
- 未找到错误检查空字符串和字符。
编辑:
我创建了一个博客帖子详细的步骤,并提供了更灵活的解决方案:
http://www.solutionmaniacs.com/blog/2012/11/25/c-removereplace-characters-in-a-string.html