专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

明明是14位的数组为什么要定义15位!解决方案

发布时间:2011-06-28 10:18:25 文章来源:www.iduyao.cn 采编人员:星星草
明明是14位的数组为什么要定义15位!
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <vector>
#include <cstdlib>
#include <string>
using namespace std;
int main(){
int intCount=0;//计数变量,初始值为0
int maxDigit=16383;//最大的要转换的数 2^14-1
vector<string> vecInt;//vector是动态的分配连续内存 
for(int intC=0;intC<maxDigit;intC++){//从0开始循环 
char charArr[15];//问题就在这里名是一个14位的数数组,但是定义14位后就报错,意思指针越界!
char charArr1[15];
_itoa_s(intC,charArr1,2);//指针越界
//int remainde=intC%2;
int i=strlen(charArr1);
if (i!=14)
{
for (int j=0; j<14-i; j++)//不足14位的补0 
{
charArr[j]='0';
}
int ii=0;
for (int k=14-i; k<14; k++)
{

if (ii<i)
{
charArr[k]=charArr1[ii];
}
ii+=1;
}

}else
{
int iii=0;
for (int n=0; n<14; n++)
{
if (iii<i)
{
charArr[n]=charArr1[iii];
}
iii+=1;
}
}
string str=charArr;
vecInt.push_back(str);//缓存 
intCount++;
}
for(unsigned int i=0;i< vecInt.size(); i++){
cout<<vecInt[i]<<endl;
}
vecInt.clear();
cout<<intCount<<endl;
system("pause");
return 0;
}

------解决思路----------------------
最后一字节是0结尾吧,为了可以当作字符串处理。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: