注册 登录
编程论坛 C++教室

帮帮忙....程序运行时得不到我想要的结果 ,谢谢

aa806525280 发布于 2008-11-10 20:43, 646 次点击
//下面不知哪里不对,运行得不到我想要的结果
//主要想任意输入一个字符串,通过检查删除标点,空格,

#include<iostream>
#include<vector>
#include<string>
 
using namespace std;
int main(){
vector<string>sss(2);
getline(cin,sss[0]);//输入一个字符串,可以包含标点,数字,字符
cout<<sss[0];
string str1;
str1=sss[0];

string  *str;

str=new  string[str1.size()];
*str=sss[0];
int  k=0;
 
for(k=0;k<str1.size();k++)

  {if(!((48<=str1[k]&&str1[k]<=57)||(65<=str1[k]&&str1[k]<=90)||(97<=str1[k]&&str1[k]<=122 ))    )
  //找出不是数字或字符的地方
 
   str[k].erase();//  在对应位置删除
   }
 
cout<<*str;  
delete []str;
return 0;
}
1 回复
#2
ma35872008-11-11 09:21
程序代码:
#include<iostream>
#include<vector>
#include<string>

using namespace std;
int main()
{
    vector<string>sss(2);
    getline(cin,sss[0]); //输入一个字符串,可以包含标点,数字,字符
    cout<<sss[0];
    string str1;
    str1=sss[0];

    string  *str;

    str=new  string;//[str1.size()];      //这里改了
    *str=sss[0];
    unsigned int k=0;

    for (k=0;k<str1.size();k++)

    {
        if (!((48<=str1[k]&&str1[k]<=57)||(65<=str1[k]&&str1[k]<=90)||(97<=str1[k]&&str1[k]<=122 )))
            //找出不是数字或字符的地方

            str->erase(k,1);//  这里改了
    }

    cout<<*str;
    delete str; //这里改了
    return 0;
}

1