首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vc2010报错有关问题

2012-07-30 
vc2010报错问题一个统计输入字符窜中字母、数字、空格和其它字符个数的程序,程序如下:#includeiostream#in

vc2010报错问题
一个统计输入字符窜中字母、数字、空格和其它字符个数的程序,程序如下:
#include<iostream>
#include<string>
using namespace std;
int main()
{char *sp=new char[1000],*s;int len;
gets(sp);
len=strlen(sp);
s=new char(len+1);
strncpy(s,sp,len);
*(s+len)='\0';
cout<<*(s+len-1)<<" "<<*(s+len)<<"pp\n";
delete []sp;
 int i,n=0,p=0,q=0,m=0;
for(i=0;s[i]!=0;i++)
{if(s[i]>=65&&s[i]<=90||s[i]>=97&&s[i]<=122)
m++;
else if(s[i]>=48&&s[i]<=57) p++;
else if(s[i]==32)n++;
else q++;
}
cout<<"word="<<m<<",space="<<n<<",number="<<p<<",other="<<q<<endl;
delete []s;
}

在vs2010中新建一个空项目添加程序文件,调试运行如下:


每次正确得出预期结果后,都会弹出一个报错框,怎么回事呢?
在vc6下也一样,报错框如下:


[解决办法]
s=new char(len+1);

s=new char[len+1];

???
[解决办法]
是呀,s=new char[len+1]; 这样应该没问题了吧?
[解决办法]
楼主太粗心了,确实应该是s= new char[len+ 1]

热点排行