标题:请教一下
只看楼主
cstdio
Rank: 5Rank: 5
来 自:上海市静安区
等 级:贵宾
威 望:15
帖 子:97
专家分:44
注 册:2018-5-30
结帖率:87.5%
已结贴  问题点数:2 回复次数:7 
请教一下
程序代码:
int main(){
    string s;
    freopen("sports.in","r",stdin);
    freopen("sports.out","w",stdout);
    cin>>s;
    for(int l=0;l<s.length();l++){
        if(s[l]<'9' && s[l]>'0')//如果是数字
        {//怎么删除这个元素?
}
return 0;
}/*1.体育乐园 (sports.cpp) 

 
因为数学老师总是以各种理由霸占体育课的时间来上数学课,体育老师心中积怨已久。
有一 天体育老师把数学老师关在“体育乐园”里,这里对体育老师来说是个乐园,有篮球足球乒 乓球,
但对于身体柔弱的数学老师来说简直就是监牢。乐园大门的锁需要密码才能打开,真 正密码藏在一串字符串 S 里。
作为数学课代表,你要解救数学老师。有一个道理大家都明白, 体育老师因为忌恨数学所以不会用数字作为密码,
S 里去除所有数字后就是真正的密码。给 定 S,请你求出真正的秘密。 

 
输入文件 sports.in 共一行包含一串字符串,长度不超过 1000。 

 
输出文件 sports.out 输出一串字符串,代表真正密码 

 
输入输出样例 1: sports.in sports.out 123soc456cer7890 soccer 

 
输入输出样例 2: sports.in sports.out si33zhi44fa55da sizhifada 

 
数据范围说明: 对于 100%的数据,1<=字符串长度<=1000 
*/
搜索更多相关主题的帖子: out 数学 老师 密码 输出 
2018-10-03 14:09
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:1 
过滤不处理不就好了?

剑栈风樯各苦辛,别时冰雪到时春
2018-10-03 23:47
cstdio
Rank: 5Rank: 5
来 自:上海市静安区
等 级:贵宾
威 望:15
帖 子:97
专家分:44
注 册:2018-5-30
得分:0 
回复 2楼 林月儿


程序代码:
/*我的意思是:我想问一下怎么删除一个string中的一个元素??*/
int main(){
    string s;
    freopen("sports.in","r",stdin);
    freopen("sports.out","w",stdout);
    cin>>s;
    const int s1=s.length();
    for(int l=0;l<sl;l++){
        if(s[l]<'9' && s[l]>'0')//如果是数字
        {
    s.erase();//怎么删除这个元素?
}
return 0;
}/*1.体育乐园 (sports.cpp) 

 
因为数学老师总是以各种理由霸占体育课的时间来上数学课,体育老师心中积怨已久。
有一 天体育老师把数学老师关在“体育乐园”里,这里对体育老师来说是个乐园,有篮球足球乒 乓球,
但对于身体柔弱的数学老师来说简直就是监牢。乐园大门的锁需要密码才能打开,真 正密码藏在一串字符串 S 里。
作为数学课代表,你要解救数学老师。有一个道理大家都明白, 体育老师因为忌恨数学所以不会用数字作为密码,
S 里去除所有数字后就是真正的密码。给 定 S,请你求出真正的秘密。 

 
输入文件 sports.in 共一行包含一串字符串,长度不超过 1000。 

 
输出文件 sports.out 输出一串字符串,代表真正密码 

 
输入输出样例 1: sports.in sports.out 123soc456cer7890 soccer 

 
输入输出样例 2: sports.in sports.out si33zhi44fa55da sizhifada 

 
数据范围说明: 对于 100%的数据,1<=字符串长度<=1000 
*/


import random
i=random.randint(100,100000)
print i
2018-10-04 14:15
cstdio
Rank: 5Rank: 5
来 自:上海市静安区
等 级:贵宾
威 望:15
帖 子:97
专家分:44
注 册:2018-5-30
得分:0 
回复 2楼 林月儿




[此贴子已经被作者于2018-10-4 19:39编辑过]


import random
i=random.randint(100,100000)
print i
2018-10-04 14:23
rohalloway
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:97
专家分:405
注 册:2018-9-28
得分:1 
erase(l.1);  //第一个参数是L

或着可以用迭代器

程序代码:
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str = "9asd2xx0k1i7jkg7jhgjhfg005fgfgfg";

    string::iterator it = str.begin();  
    
    while (it != str.end())
    {
        if (*it <='9' && *it >=  '0')
        {
            str.erase(it);
        }
        it++;
    }

    cout << str << endl;
    system("pause");
    return 0;
}
2018-10-05 16:12
rohalloway
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:97
专家分:405
注 册:2018-9-28
得分:0 
erase函数的原型如下:

(1)string& erase ( size_t pos = 0, size_t n = npos );

(2)iterator erase ( iterator position );

(3)iterator erase ( iterator first, iterator last );

也就是说有三种用法:

(1)erase(pos,n); 删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符

(2)erase(position);删除position处的一个字符(position是个string类型的迭代器)

(3)erase(first,last);删除从first到last之间的字符(first和last都是迭代器)
2018-10-05 16:14
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
有点像数组缩容

剑栈风樯各苦辛,别时冰雪到时春
2018-10-05 21:23
cstdio
Rank: 5Rank: 5
来 自:上海市静安区
等 级:贵宾
威 望:15
帖 子:97
专家分:44
注 册:2018-5-30
得分:0 
回复 7楼 林月儿
是的

import random
i=random.randint(100,100000)
print i
2018-10-06 11:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490142-1-1.html




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

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