char a[]="ab cd ef gh ij"//这里面想隔的空格键自己随便输入的!
1: 如何去除a[]中的空格键然后输出为 "abcdefghij"
char *b="asbsddggeeeff"
2:如何去除相邻的相同字母(是相邻的相同字母只保留一个)
即输出为"asbsdgef"
我也写个
[CODE]void trim(char * sz)
{
    int i = 0, j = 0;
    while(sz[j])
    {
        sz[i++] = sz[j++];
        if (' ' == sz[i - 1])
            i -- ;
    }
    sz[i] = '\0';
}
void remove(char * sz)
{
    int i = 0, j = 0;
    while(sz[j])
    {
        sz[i++] = sz[j++];
        if (sz[j] == sz[i - 1])
            i -- ;
    }
    sz[i] = '\0';
}[/CODE]

看看这个行不?能不能评价一下 我是个新手 
#include<iostream.h>
#include<string.h>
class a
{
public:
    a()
    {
        c=NULL;
        c=new char[1];
        strcpy(c,'\0');
    }
    a(char *p)
    {
        c=new char[strlen(p)+1];
        strcpy(c,p);
    }
    ~a()
    {
        delete []c;
    }
    void deletespace()
    {
        int m=strlen(c);
        int l=0;
        char *k=new char[m+1];
        for(int i=0;i<m;i++)
        {
            if(c[i]!=' ')
            {
                k[l]=c[i];
                l=l+1;
            }
        }
        for(int w=l;w<m;w++)
        {
            k[w]='\0';
        }
        cout<<k<<endl;
        delete []k;
    }
    void deleteagain()
    {
        int n=strlen(c);
        char *q=new char[n+1];
        int r=0;
        for(int j=0;j<n;j++)
        {
            if(c[j]!=c[j+1])
            {
                q[r]=c[j];
                r=r+1;
            }
        }
        for(int b=r;b<n;b++)
        {
            q[b]='\0';
        }
        cout<<q<<endl;
        delete []q;
    }
            
private:
    char *c;
};
void main(void)
{
    a a1("sdfd df");
    a a2("dfdfdfffdff");
    a1.deletespace();
    a2.deleteagain();
}
    
 
引用:great6789的程序!
呵呵,今天很有空,无聊啊,随便 写了两个   
      //我对你的程序有两个疑问??
int trim(char* a)//去空格
{
    int i=0;
    int m=0;//保存空格数
    int l;
    while(*(a+i)!='\0')
    {
        if(*(a+i)==' ')
        {
            m++;
            l=i;
            while(*(a+l)!='\0')
            {
                *(a+l)=*(a+l+1);
                l++;
            }
            continue;
        }
        i++;
    }
    return m;??返回m是什么呢?它可不能返回无空格键的字符串!
}
void DeleteSame(char* a)//去除相邻的相同字母
{
    int l;
    int i=0;
    while(a[i]!='\0')
    {
        if(a[i]==a[i+1])
        {
            l=i;
            while(a[l]!='\0')
            {
                a[l]=a[l+1];
                l++;
            }
            continue;
        }
            i++;
    }
}                              //我真不知道这个程序他既然无返回值,也的有个cout<<...呀!不然主程序如何应调用呀!
[此贴子已经被作者于2006-8-16 10:04:23编辑过]