Я делаю простую программу шифрования на основе ascii. ниже мой код, и я не уверен, почему я получаю значение мусора в конце при печати скопированной строки.копирование массива символов в другой массив дает значение для мусора
#include <iostream>
#include <conio.h>
using namespace std;
void encrypt(char []);
void convertToAscii(char [], char []);
int main()
{
char userString [] ="This is a string";
const int size= sizeof(userString);
char copyString[size];
convertToAscii(userString, copyString);
cout<<copyString;
_getch();
return 0;
}
void convertToAscii(char s[], char* cs)
{
for(int i=0; s[i] != '\0'; i++)
{
int x = s[i];
x= x+3;
char y= x;
cs[i]=y;
cout<< x<<" "<<y<<"\n";
}
}
в основном конвертирует один символ другого на основе ASCII, поэтому +3 преобразует ASCII с этого конкретного символа в другой char.i.e T станет W amd и так далее. –
И, '}' + 3 будет вне диапазона для ASCII. Чтобы обернуть вокруг, 'char y = x% 128;' So, '}' становится '\ x00' (␀), '~' становится '\ x01' (␁) и '\ x7F' (␡) становится '\ x02 '(␂). –