legendmic2   2년 전

아스키코드를 이용해서 a~z를 string의 find함수를 이용하여 검색하는 로직으로 프로그램을 짰는데요,

공백인 경우, 글자 하나만 들어가는 경우, 글자가 공백으로 나오는 경우를 포함하여 짰는데 틀렸다고 나오네요ㅠㅠ

어떤 경우를 제가 고려하지 않았는지 고수분들의 조언을 여쭙고싶습니다ㅠㅠ 감사합니다!

djm03178   2년 전

16번째 줄에 idx <= 25라는 조건은 왜 있는 건가요?

djm03178   2년 전

그리고 아스키 코드를 쓰는 것보다 'a', 'z'를 쓰는 것이 좋습니다.

legendmic2   2년 전

@djm03178

아.. idx<=str.size() 를 넣으려는거였는데 짜다가 혼자 혼동했네요ㅠㅠ 그 부분 바꾸니까 해결됐습니다!!

그러면 'a'와 'z'로 반복문을 돌리려면

for(char word='a'; word!='z'; word++)

이런식으로 짜야하는건가요??

아스키코드를 쓰는것보다 'a' 'z'를 사용하는것이 좋은 이유도 궁금합니다ㅎㅎ

아직 c처럼 짜는거에서 벗어나질 못하네요...ㅠㅠ

djm03178   2년 전

아스키 코드 값을 쓰는 건, 그 코드를 실행하는 시스템이 아스키 코드 체계를 사용하고 있다는 보장이 있어야 할 뿐 아니라, 각 값이 무슨 문자에 대응되는지 알고 있어야 하고, 그렇다고 하더라도 굳이 그 값이 무슨 문자인지를 해석해서 읽게 할 이유가 없습니다. 어떤 면에서 보더라도, 아스키 코드 값을 쓰는 것이 문자 상수를 쓰는 것보다 나을 게 없죠.

legendmic2   2년 전

@djm03178

답변 감사합니다! 그러면 'a'부터 'z'까지 순차적으로 검색하려면 if문 타이핑해서 코드를 짜야하나요..?

아스키코드를 썼던 이유중 하나가 그냥 +1해주면 그 다음 알파벳이기때문에 for문 돌리기가 쉬워서였는데요,

char형 문자를 쭈루룩 검색하려면 어떻게해야할지도 알려주시면 감사하겠습니다...ㅠㅠ

djm03178   2년 전

다르게 할 것이 없습니다. 쓰신 것처럼 루프를 돌리면 됩니다.

djm03178   2년 전

문자 상수를 쓰면, 아스키 코드를 사용하는 환경의 컴파일러는 그 값을 컴파일 시에 해당하는 아스키 코드의 값으로 변환해줍니다. 즉, 그 값을 알아야 하는 건 컴파일러지, 프로그래머는 그 값을 외우고 다닐 필요가 없는 겁니다.

legendmic2   2년 전

@djm03178

아... 가르침 얻고갑니다... 매번 감사합니다! 날씨도 더운데 고생많으셔요 감사합니다ㅠㅠ

댓글을 작성하려면 로그인해야 합니다.