| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1870 人关注过本帖
标题:小程序(输入:abc123def456ghj789,输出:abcdefhij.怎么删除数字再按序输出 ...
只看楼主 加入收藏
xiaxiang1986
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-3-16
收藏
 问题点数:0 回复次数:4 
小程序(输入:abc123def456ghj789,输出:abcdefhij.怎么删除数字再按序输出呀?
谁帮我写下这个程序:功能是:输入一个字符串,将其中的所有数字删除,输出改动后的字符串及其长度,eg:abc123def456ghj789,输出:abcdefhij.怎么删除数字再按序输出字符串及其长度?
搜索更多相关主题的帖子: abcdefhij 数字 输出 字符 
2008-03-20 16:40
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
...把数字字符剔除...不困难..
#include "string.h"
#include"stdio.h"
#define PL printf("please input strings:\n")
int main()
{
    char ch[60],*p;
    PL;
    gets(ch);
    p=ch;
    do
    {
        if(*p>='0'&&*p<='9')
            strcpy(p,p+1);
        else p++;
    }while(*p);
    PL;
    puts(ch);
    return 0;
}

[[it] 本帖最后由 sunkaidong 于 2008-3-20 17:07 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-03-20 16:43
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
这种题应该自已看书解决,自已多写才能有进步,刚学的吧,楼上用指针写的能不能看懂。
自已尝试一下多种解决方法,这样掌握的才更牢固,理解才更深刻。
THANKS!

i like linux...
2008-03-21 10:11
handongxue
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-3-25
收藏
得分:0 
用string类描述如下:
#include<iostream>
#include<string>
using namespace std;

string delenum(const string &str1)  //子函数
{
    string str2(str1);

    for(size_t i=0;;)
    {
        if(i>=str2.size()) break;
        if(str2[i]>='0' && str2[i]<='9')
            str2.erase(str2.begin()+i); //清除数字;
        else
          i++;
    }

    return str2;

}

int main()
{
    string str;
    cout<<"Input the string str :"<<endl;
    getline(cin,str);

    cout<<delenum(str)<<endl;
}
2008-03-25 17:31
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
#include<iostream>
#include<string>
#include<cctype>
using namespace std;

int main(){
  char *pstr=new char[60];
  int j=0;
  string str="0";
  cout<<endl<<"please input strings: ";
  getline(cin,str);
  for(int i=0;i!=str.size();i++)
    if(!isdigit(str[i]))
      pstr[j++]=str[i];
  cout<<pstr<<endl<<strlen(pstr);
  delete [] pstr;
  system("pause");   
  return 0;   
}
一开始 声明固定数组 一个不通用(数组大小事先确定) 二个一直占内存
所以想用动态分配数组但是 也 得指定数组大小 不知道 如果数组小了否会泄露
如果数组大了不知道 又是否占内存了
还有就是 上述 代码 输入的字符多的话就显示pp\Bin;D:\工具软件\BORLAN~1\Bin;D:\工具软件\B
不知道是怎么回事
2008-03-25 20:29
快速回复:小程序(输入:abc123def456ghj789,输出:abcdefhij.怎么删除数字再按 ...
数据加载中...
 
   



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

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