我试图创建一个简单的程序,允许我增加当前整数并替换最后的" n个字符"在char *。
然而,无论我做什么,它只是输出相同的东西。
例如Index = 1
输出: XX201701 XX201702 XX201703 XX201704 ... XX201710
有人可能会告诉我这里我做错了什么吗?
#include<iostream>
using namespace std;
int index = 1;
char* GenerateNext()
{
char* def = new char[9];
char buffer[9];
int counter = 0;
int temp = index;
while (temp != 0)
{
temp /= 10;
counter++;
}
strncpy_s(def, 9, "XX160000", 8 - counter);
_itoa_s(counter, buffer, 9, 10);
strcat_s(def, 9, buffer);
index++;
return def;
}
int main()
{
char* generated = GenerateNext();
char* generated2 = GenerateNext();
cout << generated << endl << generated2 << endl;
delete[] generated;
delete[] generated2;
generated = nullptr;
generated2 = nullptr;
system("PAUSE");
return 0;
}
答案 0 :(得分:1)
我认为您需要打印index
而不是counter
:
_itoa_s(index, buffer, 9, 10);
因为counter
的值对于1..9 index
将为1,所以输出字符串将保持不变。