相同的代码放在不同的地方输出不同
实现加密
#include
using namespace std;
int cplcode[1000];
int num[1000];
int cnt;
void complicate(int code[],const char* words,int len) {
int i = 0;
for (int j = 0; j < len; j++) {
while (*words) {
cplcode[j] = *(words++) + code[(i++) % 7];//此数组应该存的是30个数字
cout << char(cplcode[j]);
cnt++;
}
}
}
//void simplify(int code[],int len) {
// int i = 0;
// for (int j = 0; j < len; j++) {
// num[j] = cplcode[j] - code[i % 7];
// //cout << cplcode[j]<< " ";
// i++;
// }
//
//}
int main() {
int code[] = { 4,9,6,2,8,7,3 };
const char* words = "the result of 3 and 2 is not 8";
int len1 = strlen(words);
complicate(code, words,len1);
int len2 = cnt;
for (int i = 0; i < len2; i++) {
cout << cplcode[i] << " ";//但我在这里却输出的是不同的数字
}
//simplify(cplcode,len2);
return 0;
}
cplcode[j] = *(words++) + code[(i++) % 7];//此数组应该存的是30个数字
cout << char(cplcode[j]);
你这个while循环一直在给同一个j下标元素进行赋值啊
另外由于words++一直向后移动word指针,导致下次for循环时,while条件直接不满足就拉倒了,实际cplcode就第一个元素有值,因此main里只能输出第一个值,后面全是0