rendered paste body#include <iostream>#include <windows.h>using namespace std;const int NUMEL1 = 30;const int NUMEL2 = 40;void printBytes(char *, int);void copyStr(char *, char *);void listAll(char *, char);int main(){ SetConsoleCP(1251); SetConsoleOutputCP(1251); char stroka1[NUMEL1]; char stroka2[NUMEL2]=""; int n; char addr; cout << "Введите текст: "; cin.getline(stroka1, NUMEL1); cout << "\nВведите число символов, которые вы хотите исследовать: "; cin >> n; if(n > strlen(stroka1)) { //Защита от дурака :) cout<<"\nERROR!!! Колличество символов, которое вы хотите рассмотреть превосходит длину строки!"<<endl; getchar(); return(1); } cout << "\nПользователь ввел строку: \n" << stroka1 << '\n'; printBytes(stroka1, n); cout << "Скопируем!\n"; copyStr(stroka1, stroka2); cout << "\nВы можете найти значение одного из элементов строки расположенного по адресу:\n" << &stroka1 << "\nВведите символ из строки, адрес которого вы хотите найти: "; cin >> addr; listAll(stroka1, addr); getchar(); getchar();}void printBytes(char *p,int nbytes){ //Берем сивмолы и их ASCII код unsigned char a; for(int i = 0; i < nbytes; i++) { a = p[i]; cout << a << " - " << unsigned(a) <<'\n'; }}void copyStr(char *source, char *target){ //Копируем :) char *p1 = source; char *p2 = target; cout << "\nКопия строки: " << source; for (int i = 0; i < strlen(source); i++) { *(p2 + i) = *(p1 + i); } cout << '\n' << target << '\n';}void listAll(char *source, char what){ cout<<"Адреса по которым найден символ " << what << ":\n"; char *p = source; int i = 0; void *pt = &source[i]; for(i = 0; i < strlen(source); i++) { if (*(p+i) == what) { cout << &pt << endl; } }}