现在的位置: 首页 > 综合 > 正文

字符串s中出现的C字符删除的不同实现方法

2013年10月13日 ⁄ 综合 ⁄ 共 2021字 ⁄ 字号 评论关闭
 


  1    
  2    #include <stdio.h>
  3    #include <string.h>
  4    void delchar(char s[],  char c);
  5    int main()
  6    {
  7        char cc,ch[80];
  8        
  9        cc=getchar();
 10        getchar();//erase Enter
 11        gets(ch);
 12        delchar(ch,cc);
 13        printf("%s",ch);
 14        
 15        return 0;
 16    }
 17    void delchar(char s[], char c)
 18    {
 19        int i,k,len;
 20        len=strlen(s);
 21        for(i=0;s[i]!='/0' ;)
 22        {
 23             if(s[i]==c)
 24             {
 25                  for(k=i;k<len;k++)
 26                  {
 27                       s[k]=s[k+1];    
 28                  }
 29                  if (s[i]!=c)
 30                  {
 31                       i++;
 32                  }
 33             }
 34             else
 35               i++;
 36        }
 37    }
 38    
 39 

C++ STL version


  1    #include <vector>
  2    #include <cstdio>
  3    #include <cstring>
  4    #include <iostream>
  5    using namespace std;
  6    int main()
  7    {
  8        char cc,ch[80];
  9        cin>>cc;
 10        cin>>ch;
 11        
 12        vector<char>v(ch,ch+strlen(ch));
 13        for (vector<char>::iterator it = v.begin();it!=v.end();)
 14        {
 15             if (*it==cc)
 16             {
 17                  it=v.erase(it);
 18             }
 19             else
 20              it++;
 21             
 22        }
 23        
 24        for (vector<char>::iterator it=v.begin();it!=v.end();it++)
 25        {
 26             cout<<*it;
 27        }
 28        
 29        return 0;
 30    }
 31    
 32   

 1    #include <iostream>
  2    #include <iterator>
  3    #include <algorithm>
  4    #include <functional>
  5    
  6    using namespace std;
  7    int main()
  8    {
  9        
 10         remove_copy_if(istream_iterator<char>(cin), istream_iterator<char>(),    ostream_iterator<char>(cout), bind1st(equal_to<char>(),cin.get()));
 11            return 0;
 12    }
 13    

  1    
  2    int main()
  3    {
  4        remove_copy(istream_iterator<char>(cin), istream_iterator<char>(), ostream_iterator<char>(cout), cin.get());
  5    }
  6    
  7   

 

 

抱歉!评论已关闭.