• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Коды Ascii

  • Автор темы -=Fynjy=-
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

-=Fynjy=-

Подскажите, пожадуйста, какая функция отвечает за преобразование символа в код ASCII на с++....
Нашел функцию преобразовывающую код в символ... (toascii()) ...а вот символ в код все никак не могу найти....вообще есть ли такая :) ...
На паскале искал - быстро все нашел.... ord chr ....а для с++ чето никак не находится....


Заранее спасибо :)
 
F

-=Fynjy=-

Я в программировании новичек еще совсем :) .... Не прояснило )
 
E

European

Char - это целочисленный тип. Там где нужно использовать код символа можно передавать сам символ
 
F

-=Fynjy=-

Такс....у меня проблема немного в другом мне нужно заменить каждый символ из данной строки на последующий по алфавиту...
Кроме как сделать это по таблице на ум ничего не пришло (
 
F

-=Fynjy=-

Пытался решить задачу так:
Через цикл
i=0;
for(z='a';z<='z';z++,i++) (заменял каждый str=z+1)...но чтоб обращаться к итому символу строки нужно задать переменную как char z[80] (а не просто char z)....а когда я задаю переменную как char z[80], то у меня символы вводимые после пробела не выводятся...

Если же задать переменную как просто char z, то нельзя обратиться к итому символу.... а как же тогда заменять каждый символ на последующий по алфавиту?
 
E

European

Перед заменой надо проверять вхождение символа во множество букв, которое подлежит замене
 
F

-=Fynjy=-

void main()
{
int i;
char z[80];
i=0;
//for (z=' ';z;z++) // цикл работает только тогда когда не пишу сколько символов будет в строке...
//{
scanf("%c",&z);
printf("%c",z);
//}
/*for (z='A';z<='Z';z++) // цикл работает только тогда когда не пишу сколько символов будет в строке...
{
scanf("%c",&z);
printf("%c",z);
} */
getch();
}

Указывая количество символов в строке, не могу считать даже саму строку...не говоря уже о замене каждом символе на последующий по алфавиту...
 
E

European

Как всегда скатились к проблеме ввода с консоли :) Ну неужели так тяжело посмотреть соседние ветки?
 
F

-=Fynjy=-

ну я же говорю что я новичек еще в етом деле )
 
E

European

Ну если новичек, то наверное стоит сказать, что на форумах, за некоторым исключением, помогают решить проблему, а не пишут готовую программу
 
F

-=Fynjy=-

Я и не пытаюсь вытянуть готовую программу...
Объясните хотябы на словах как осуществить ввод строки если задать кол-во символов в ней...
 
F

-=Fynjy=-

Такс.... Задача была такова:"Дана строка символов. Зашифровать данную строку, заменив в ней каждую букву следующей по алфавиту, и удалив знаки препинания."

#include<string.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <ctype.h>

void main()
{
int z;
char i[80];
gets(i); //ввод строки
for (z=0;z<strlen(i);z++)
{
scanf("%d",&i[z]); // считываю каждый символ строки
if ((i[z]==46) || (i[z]==58) ||(i[z]==59) || (i[z]==44) ||(i[z]==45)) i[z]=32; //замена знаков препинания на пробел
if (i[z]==90) i[z]=toascii(65); //если символ 'Z' то заменяю его на А
if (i[z]==122) i[z]=toascii(97); //если символ 'z' то на а
if (((i[z]>65) && (i[z]<90)) || ((i[z]>97) && (i[z]<122))) i[z]=toascii(z+1); //проверяю интервалы и заменяю символ на последующий по алфавиту
}
printf("%s",i); //вывожу полученную строку
getch();
}

Найдите ошибку plssssss


Ничего не пойму...вроде правильно все написано :)
 
G

grigsoft

scanf, toascii - не нужны вообще.
i[z]=toascii(z+1) д.б. i[z] = i[z]+1;
 
F

-=Fynjy=-

Cпасибо...переправил..все заработало :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!