
c++使用char* a=new char[]的问题。。急
y=rand()%10+1;//随机数产生字符串的字母个数char*temp_name=newchar[y];for(inti=0;i<y;++i){intk=(rand...
y=rand()%10+1;//随机数产生字符串的字母个数
char* temp_name = new char[y];
for(int i = 0; i < y; ++i)
{
int k=(rand()%26)+97;//利用ascii码放小写字母
temp_name[i] = k;
}
但是他的temp_name打印出来发现存储的是cbjscjbjgt������铪
还有长长的尾巴。。尾巴还有很多莫名的字符
问问要怎么解决呢 展开
char* temp_name = new char[y];
for(int i = 0; i < y; ++i)
{
int k=(rand()%26)+97;//利用ascii码放小写字母
temp_name[i] = k;
}
但是他的temp_name打印出来发现存储的是cbjscjbjgt������铪
还有长长的尾巴。。尾巴还有很多莫名的字符
问问要怎么解决呢 展开
1个回答
2014-03-20
展开全部
字符串尾部应该有个'\0'作为字符串结尾标志,所以申请空间应该多申请一个:
char*temp_name=new char[y+1];
在for(){}循环后面,加上temp_name[i]='\0';就行了.
char*temp_name=new char[y+1];
在for(){}循环后面,加上temp_name[i]='\0';就行了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询