Было бы легко кодировать, если вы используете c++11
, потому что функция to_string()
доступна для c++11
и далее. Теперь все, что вам нужно сделать, это играть со своими значениями ASCII.
Посмотрите на фрагменты кода:
1 Преобразование строки в значение ASCII строки
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", output;
for(int i=0; i<str.length(); i++) {
output += to_string((int)str[i]);
}
cout<< output << endl;
return 0;
}
2 Преобразование строки в значение ASCII длинной междунар, но возражаю диапазон длинных междунар. Вы можете получить неправильный ответ на длинная строка ввода, и теперь код есть.
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "xyz";
long int output = 0;
for(int i=0; i<str.length(); i++) {
if(str[i]/100) { // three digit ASCII Value
output = 1000*output + str[i];
} else if(str[i]/10) { // two digit ASCII Value
output = 100*output + str[i];
} else { // one digit ASCII Value
output = 10*output + str[i];
}
}
cout<< output << endl;
return 0;
}
C или C++, выберите один. Эти два языка разные. – fuz
Ваша спецификация не совсем лаконична. Вам нужно преобразовать значения строки и int обратно в исходное значение строки? Если это так, вам нужно разделить результат. Самое простое решение - использовать шестнадцатеричную систему цифр для вашей строки. И для значения int сдвиньте результат, оставшийся на 8 бит для каждого добавленного нового символа. – IInspectable