| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 826 人关注过本帖
标题:[求助]字符删除
只看楼主 加入收藏
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
 问题点数:0 回复次数:13 
[求助]字符删除
#include<iostream>
using namespace std;
const int arrysize=20;
int main()
{
char str[arrysize],ch;
int j;
cout<<"请输入一字符串:";
cin.getline(str,arrysize);
cout<<"请输入你要删除的字符:";
cin>>ch;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==ch)
{
for(j=i;str[j+1]!=ch;j++)
str[j]=str[j+1];
}

}
cout<<"修改后的字符串为:"<<str<<endl;
system("pause");
return 0;
}

题意就如cout<<.......所示....
问题何在?
(ps:我只想用这种方法实现,我已经用另一种方法实现了)
搜索更多相关主题的帖子: 字符 删除 
2006-07-26 16:21
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
回复:(nick_annie)[求助]字符删除
一点小错误。。。
#include<iostream>
using namespace std;
const int arrysize=20;
int main()
{
char str[arrysize],ch;
int j;
cout<<"请输入一字符串:";
cin.getline(str,arrysize);
cout<<"请输入你要删除的字符:";
cin>>ch;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==ch)
{
for(j=i;str[j+1]!='\0';j++)
str[j]=str[j+1];
str[j]='\0';
}

}
cout<<"修改后的字符串为:"<<str<<endl;
system("pause");
return 0;
}

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-26 16:38
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
虽然这样改是没问题的,但是有点取巧
因为如果要删除的字符不在串中:
str[j]='\0';只是因为j未赋值,所以是-812791391(具体不清楚)
也就不会对程序有影响,但是感觉还是有忧患

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-26 16:42
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
你运行试试

2006-07-26 16:51
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
如果重复出现同样的字符呢?

2006-07-26 16:53
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
如果出现同样的字符我就没试了,你自己应该会改

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-26 16:59
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-26 17:02
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
我刚才试了下,原因是少加了个i--;   
    for(int i=0;str[i]!='\0';i++)
    {
            if(str[i]==ch)
            {
                 for(j=i;str[j+1]!='\0';j++)
                     str[j]=str[j+1];
                str[j]='\0';
                i--;
            }
                                                
    }

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-26 17:28
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
j=i;
do
{
     str[j]=str[j+++1];
}
while(str[j]!='\0');

他的j比我好,用他的吧,只需要在循环后面加个i--;就够了

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-26 17:30
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
Well,thanks.........

2006-07-26 18:15
快速回复:[求助]字符删除
数据加载中...
 
   



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

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