当前位置:编程学习 > C/C++ >>

顺序串算法

从串S中删除其中等于字符c的所有字符

 
void Delete(SqString &S,char c)  
{  
    int i,j;  
    for(i=0;i<S.length;i++)  
    {  
        if(S.data[i]==c)  
        {  
            for(j=i;j<S.length-1;j++)  
            {  
                S.data[j]=S.data[j+1];  
            }  
            S.length--;  
        }  
    }  
}  
  
  
//上述算法效率很低  
  
void DelAll(SqString &S,char c)  
{  
    int k=0,i=0;  
    while(i<S.length)  
    {  
        if(S.data[i]==c)  
            k++;  
        else  
            S.data[i-k]=S.data[i];  
    }  
    S.length=S.length-k;  
}  

 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,