단순히 +5만 해준다면
'z'의 경우를 생각해 보세요.
아마도 님이 원하시는 대로 하려면, modulus 26연산을 해주셔야 될듯.
Caesar cipher라고 문자를 몇 개 쉬프트 하는 암호화방식이란게 있죠. http://codebreaker.dids.com/history2.htm
여기서는 5개를 쉬프트하는 거네요.
암호화시
if ( data[i]가 A~Z사이라면 )
enc_data[i] = (data[i]-'A'+5)%26+'A' ;
else if ( data[i]가 a~z사이라면 )
enc_data[i] = (data[i]-'a'+5)%26+'a' ;
그리고 복호화시에도 고려해야 겠죠.
좀만 더 생각하시면 복호화도 구현하실 수 있을 껍니다.
그럼, 즐프하세요~
헉...
data[i] + 5라구 해서..
실제 데이터가 바뀌는건 아니지요.. --;;
원 데이터 그대로 있습니다..
.
잘되는것 같은데요..
삶의 이탈을 꿈꾸며..
..
이렇게 하셔도..
아마 사소한 실수 일듯 하네요..
Re: 스트링 조작에 관해서..
...
먼저 답변에 감사 드립니다...제가 바보같이 출력만 시키고 원래의
먼저 답변에 감사 드립니다...
제가 바보같이 출력만 시키고 원래의 데이터는 조작도 하지 않은채..
다시 변환을 하니까.. 결국엔... 인코드 디코드가 되지 않은 거군요..
컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러
이런 문제가 생기지 않을까요?
단순히 +5만 해준다면
'z'의 경우를 생각해 보세요.
아마도 님이 원하시는 대로 하려면, modulus 26연산을 해주셔야 될듯.
Caesar cipher라고 문자를 몇 개 쉬프트 하는 암호화방식이란게 있죠.
http://codebreaker.dids.com/history2.htm
여기서는 5개를 쉬프트하는 거네요.
암호화시
if ( data[i]가 A~Z사이라면 )
enc_data[i] = (data[i]-'A'+5)%26+'A' ;
else if ( data[i]가 a~z사이라면 )
enc_data[i] = (data[i]-'a'+5)%26+'a' ;
그리고 복호화시에도 고려해야 겠죠.
좀만 더 생각하시면 복호화도 구현하실 수 있을 껍니다.
그럼, 즐프하세요~
댓글 달기