问题及代码
/*
*Copyright(c)2017,烟台大学计算机学院
*All right reserved.
*文件名:main.cpp sqstring.h string.cpp
*作者:王万兴
*完成日期:2017年10月19日
*版本号:v1.0
*
*问题描述:串内元素的删除
*输入描述:无
*程序输出:见运行结果
*/
#include <stdio.h>
#include "sqString.h"
void DellChar(SqString &s, char c)
{
int k=0, i=0; //k记录值等于c的字符个数
while(i<s.length)
{
if(s.data[i]==c)
k++;
else
s.data[i-k]=s.data[i];
i++;
}
s.length -= k;
}
int main()
{
SqString s;
printf("删除前:");
StrAssign(s, "message");
DispStr(s);
DellChar(s, 'e');
printf("删除后:");
DispStr(s);
return 0;
}
运行结果
知识点总结
将要删除的元素用后一元素覆盖掉,实现元素的删除。
本文介绍了一种简单的字符串处理算法,用于从字符串中删除指定字符的所有实例。通过使用后一个元素覆盖要删除的元素来实现,最后更新字符串长度。
1580

被折叠的 条评论
为什么被折叠?



