이거 뭐 때문에 오류가 나는건가요? ㅠㅠ
보미
질문 제목 : c언어 어디가 잘못된지모르겟어요 고쳐주세요!!질문 내용 :
암호화를 복호화로
복호화를 암호화 하는 소스인데요
키값이동을 11이상부터 무슨 궭이런 글씨가뜨네요.. 왜그런지 잘모르겟습니다 ㅠ
#includestdio.h#pragma warning ( disable : 4996 )
// 메뉴를화면에출력하는함수
int printscreen()
{
int nmode;
printf(1.암호화); //암호화 프린트 출력
printf(2.복호화); //복호화 프린트 출력
printf(3.종료\n ); //종료 프린트 출력
printf(모드를입력하세요: ); //모드프린트 출력
// 메뉴를선택받는다.
scanf(%d, &nmode);
// 선택된메뉴를리턴한다
return nmode;
}
// 암호화하는함수
void a(int ndepth, char* str)
{
int i; // 함수 i
char *pstr; //배열을 읽어들이기위한 포인터 변수
pstr = str ;
printf(암호화된문자는다음과같습니다: ); //프린터출력
// 10번반복문을돈다 for=반복문
for(i=0; i10; i++)
{
// 만약*str이null 이아니라면
if(*str != 0)
{
// 각문자마다+ ndepth 를해준다
// ex) str이abcd 이고ndepth가2 이라면cdef가된다.
*str=*str+ndepth;
// 포인터증가
str++;
}
}
// 암호화된문자열출력
printf(%s \n, pstr);
}// 복호화
void b(int ndepth, char* str)
{
int i; //함수 i
char *pstr ;
pstr = str ;
printf(해독된문자는다음과같습니다: );
// 10번반복문을돈다
for(i=0; i10; i++)
{
// *str이null이아니라면
if(*str != 0)
{
// 각문자마다- ndepth 를해준다
// ex) str이cdef 이고ndepth가2 이라면abcdf가된다.
*str=*str-ndepth;
// 포인터증가
str++;
}
}
// 복호화된문자열출력
printf(%s \n, pstr);
}// main함수
int main()
{
int depth;
int mode;
char temp[10]; //temp는 배열이고 자료형은 char [10] 이다 char 10 개 묶음이라는 것이다.
char *ptemp; // 교체 작업용 포인터
// 포인터변수에temp 대입
ptemp = temp;
// 무한반복문
while(1)
{
// 메뉴를화면에출력하고선택된값을반환한다
mode = printscreen();
// switch~case문에서비교
switch(mode)
{
// 암호화
case 1:
&nbsbsp; // 키값을 입력받는다.
printf(키값 입력: ); //앞의내용을 출력하고
scanf(%d, &depth); //값을 입력한다.
// 문자열을입력받는다.
printf(전송할문자를입력하세요: );
scanf(%s, ptemp);
// 암호화하는함수호출
a(depth, temp);
continue;
// 복호화
case 2:
b(depth, temp);
break; //비정상적인 종료 ( 무한루프에서 조건에 맞아 빠져나올때 )
// 종료
case 3: return 0;
// 메뉴이외에번호를선택시에
default: break;
}
}
return 0; //0값을 반환한다}