| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1471 人关注过本帖
标题:求大神用C++写写下面程序,各位大神给点思路吧,跪谢
只看楼主 加入收藏
ssgurt
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-9-27
结帖率:0
收藏
 问题点数:0 回复次数:2 
求大神用C++写写下面程序,各位大神给点思路吧,跪谢
图片附件: 游客没有浏览图片的权限,请 登录注册

下面是我自己写的程序
#include <iostream>
#include <string>
using std::cin;  using std::cout;
using std::endl; using std::string;
int main()
{
    cout<<"请输入一段话:";
    string chara;
    while(!cin.eof())
       cin>>chara;
   
    const string::size_type n=chara.size();

    for(int i=0;i<n;++i){
        if('A'<=chara[i]&&chara[i]<='Z')
          chara[i]+=32;
         
       //回车换行符用空格来替代
        if(chara[i]=='\r'||chara[i]=='\n'){
        
           chara[i]=' ';
        }
    }
   
    //替换bullshit为bush
    string nmd="bullshit";
    int i=0;
    while(i<=n-nmd.size()+1){
        chara=chara.replace(chara.find("bullshit"),1,"bush");
        ++i;
    }
   
    for(int i=0;i<chara.size();++i){
        int j=1;
        while(chara[i]==' '){
            ++i;
            if(chara[i]==' ')
              ++i;
            ++j;
              
        }
        string space(j,' ');
        string s(1,' ');
        for(int i=0;i<=chara.size()-j+1;++i)
          chara=chara.replace(chara.find(space),1,s);
    }
    for(int i=0;i<chara.size();++i)
        cout<<chara[i];
   
    return 0;
}

[此贴子已经被作者于2016-9-28 13:59编辑过]

搜索更多相关主题的帖子: 换行符 include 
2016-09-27 10:47
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
题意不明呀!

---因为你贴的图像,我没法拷贝---”的描述中是要求完整的单词为“---因为你贴的图像,我没法拷贝---”时才需要替换为“---因为你贴的图像,我没法拷贝---”,还是只要单词中包括“---因为你贴的图像,我没法拷贝---”就需要替换?

---因为你贴的图像,我没法拷贝---”的描述就更模糊了
" a " 是输成 " a ",还是"a"? 按照题目要求看起来是前者;
"a \n b" 是输成 "a  b",还是"a b"? 按照题目要求看起来是前者;
"a\nb" 是输成 "ab",还是"a b"? 按照题目要求看起来是前者。
2016-09-27 13:08
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
再来一记助攻  援引  https://bbs.bccn.net/viewthread.php?tid=41519&extra=page%3D1%26amp%3Bfilter%3Ddigest

程序代码:
#include <iostream>
#include <string>
using std::cin;  using std::cout;
using std::endl; using std::string;
int main()
{
    cout<<"请输入一段话:";
    string chara;
    while(!cin.eof())//你用了while()所以你应该知道程序会读到多个字符串把,那每次都保存到chara,是不是就一次次覆盖,然后只剩下最后一个string可以执行后面的步骤
       cin>>chara;////不好意思,我以为你用了while()表示你知道这段文字将被作为多个独立的字符串读入,但从后续代码来看。你以为你用一个chara就读到了整段文字。
              //其实所有你的题目中所列的空白符都会导致之前的字符被当成一个字符串。好死不死,你用了while,所以最后chara只能读到整段文字的最后一小部分
  

    const string::size_type n=chara.size();//string类型里面好像有一个方法是可以把字符串字母转换为小写的。额,叫什么我忘了

    for(int i=0;i<n;++i){
        if('A'<=chara[i]&&chara[i]<='Z')
          chara[i]+=32;
        

       //回车换行符用空格来替代
        if(chara[i]=='\r'||chara[i]=='\n'){
       

           chara[i]=' ';
        }
    }
  

    //替换bullshit为bush
    string nmd="bullshit";
    int i=0;
    while(i<=n-nmd.size()+1){
        chara=chara.replace(chara.find("bullshit"),1,"bush");
        ++i;
    }
  

    for(int i=0;i<chara.size();++i){
        int j=1;
        while(chara[i]==' '){
            ++i;
            if(chara[i]==' ')
              ++i;
            ++j;
             

        }
        string space(j,' ');
        string s(1,' ');
        for(int i=0;i<=chara.size()-j+1;++i)
          chara=chara.replace(chara.find(space),1,s);
    }
    for(int i=0;i<chara.size();++i)
        cout<<chara[i];
  

    return 0;
} 
举例代码及截图参见:
  
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
#include <iostream>
#include <string>
using std::cin;  using std::cout;
using std::endl; using std::string;
int main()
{
    cout<<"请输入一段话:";
    string chara;
    while(!cin.eof())
       cin>>chara;
    cout<<chara<<endl;

    return 0;
}





φ(゜▽゜*)♪
2016-09-27 22:05
快速回复:求大神用C++写写下面程序,各位大神给点思路吧,跪谢
数据加载中...
 
   



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

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