| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7817 人关注过本帖
标题:如何去除空格键
只看楼主 加入收藏
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
 问题点数:0 回复次数:113 
如何去除空格键
求助大家两个程序问题:

char a[]="ab cd ef gh ij"//这里面想隔的空格键自己随便输入的!
1: 如何去除a[]中的空格键然后输出为 "abcdefghij"

char *b="asbsddggeeeff"
2:如何去除相邻的相同字母(是相邻的相同字母只保留一个)
即输出为"asbsdgef"
搜索更多相关主题的帖子: 空格键 char 字母 abcdefghij asbsdgef 
2006-08-14 22:18
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 
if(****)
continue;
cout<<*********
2006-08-14 22:40
great6789
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-12-29
收藏
得分:0 
呵呵,今天很有空,无聊啊,随便 写了两个
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;
}

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++;
}
}
2006-08-15 16:23
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 

我也写个
[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]


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-08-15 17:33
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
收藏
得分:0 

看看这个行不?能不能评价一下 我是个新手 
#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();
}


2006-08-15 22:33
lovl
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-8-10
收藏
得分:0 
我是个新手,我想问一下这个程序代码是怎样实现的.
void trim(char * sz)
{
int i = 0, j = 0;
while(sz[j])
{
sz[i++] = sz[j++];
if (' ' == sz[i - 1])
i -- ;
}
sz[i] = '\0'; //这个有什么用?? 当sz为结束符有什么吗?如何实现循环?怎样输出的啊??
}
谢谢!
2006-08-16 00:43
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
收藏
得分:0 
sz[i] = '\0'; //这个有什么用?? 当sz为结束符有什么吗?如何实现循环?怎样输出的啊??

把数组最后一个值赋成'\0'
2006-08-16 07:42
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 

引用: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编辑过]

2006-08-16 10:01
great6789
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-12-29
收藏
得分:0 
int main()
{
char x[]="aasssss";
cout<<trim(x)<<endl;//输出结果为0
DeleteSame(x);
cout<<x;//输出结果as
return 0;
}
2006-08-24 15:23
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-24 23:56
快速回复:如何去除空格键
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019740 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved