C++的问题找不出哪里错了,编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字符串

#include<iostream>usingnamespacestd;intmain(){chars[100];inti;intlength(i);cout<<"ple... #include <iostream>

using namespace std;

int main()

{
char s[100];
int i;
int length(i);

cout<<"please input s=";
cin>>s;
for(i=0;i++;)
cout<<"s="<<s<<endl;
if('0'<s[i]&&s[i]<'9')
length=length-1;
i=i-1;
if(s[i]= '\0')
cout<<s[i]<<endl;
return 0;
}
展开
 我来答
匿名用户
2014-04-03
展开全部

//编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字符串

#include<iostream>

#include<ctype.h>

using namespace std;

void movestr(char *str,int i,int n)

{

for (int j = i; j < n-1; j++)

{

str[j] = str[j+ 1];

}

str[n - 1] = '\0';

}

void main()

{

char str[200] = {};

cout << "请输入字符串:" << endl;

cin >> str;

for (int i = 0,count=0; i < 200&&count<200; i++,count++)

{

if (isdigit(str[i]))

{

movestr(str, i, 200);

i--;

}

}

cout << str << endl;

system("pause");

}

追问
里面有些如system,movestr我们还没学呢,有其他表达形式吗
追答

/*movestr()是自定义函数,就是自己写的函数,system("pause");是让程序暂停。好吧我改改再给你*/

//改好了如下:直接粘过去就能运行;

//编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字符串
#include<iostream>
#include<ctype.h>
using namespace std;

void main()
{
char str[200] = {};
cout << "请输入字符串:" << endl;
cin >> str;
for (int i = 0, count = 0; i < 200 && count < 200; i++, count++)
{
if (str[i]>='0'&&str[i]<='\9')
{
for (int k = i; k < 200; k++)
{
str[k] = str[k + 1];
}
i--;
}
}
cout << str << endl;
system("pause");
}
silmerusse
2014-04-03 · TA获得超过6640个赞
知道大有可为答主
回答量:2919
采纳率:33%
帮助的人:2103万
展开全部
你这程序很混乱阿
int length(i); 这是什么写法...

for (i=0;i++;)
这又是什么意思? 判断条件i++等于0,也就是这句语句等于没执行...
循环体没有大括号

后面更看不懂了...
追问
老师要求
输入一串测试字符,用整型变量lenth储存字符串的长度,但不太了解length的用法,那要怎样编呢?求助。
追答

字符串长度如果用c的风格可以用strlen(), c++风格用string.size()。你的问题是基本的变量赋值、循环体都没理解好,还是多看看书吧。


以下代码可以用新一点的编译器(支持c++11标准的)编译运行,如g++ -std=c++11 test.cc,供参考:

#include <iostream>
#include <algorithm>
int main () {
  std::string s;
  std::cin >> s;
  s.erase(std::remove_if (s.begin(), s.end(),  [](char c) -> bool { return (c <= '9' && c >= '0');}), s.end());
  std::cout << s << std::endl;
  return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-04-03
展开全部
#include <iostream>
#include <string>
int main()
{
using namespace std;
string str;
cin>>str;
for(string::size_type index=0;index!=str.size();++inde)
if(str[index]<'1' || str[index]>'9')
cout << str[index] << flush;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式