1-F 질문있습니다
115
작성한 질문수 2
#include<bits/stdc++.h>
using namespace std;
string S;
int main()
{
getline(cin, S);
for (int i = 0; i < S.size(); i++) {
if(S[i]>'9')
{
if(S[i] !=' ') S[i] += 13;
if (int(S[i]) > 122 || (90<int(S[i])&&int(S[i])<97)) S[i] -= 26;
}
}
cout << S;
}
이렇게 코드를 짰는데
Baekjoon Online Judge를 입력하면
Onrxwbba Bayvar W굌tr
One is 1을 입력하면
Bar v 1
이렇게 출력됩니다.
디버그를 해보니 'u'에서 if(S[i] !=' ') S[i] += 13;를 지날때 갑자기 -126이 입력되고 's'에서 -128이 되어버립니다. 무엇이 문제인가요?
답변 1
0
안녕하세요 ㅎㅎ
if(S[i] !=' ') S[i] += 13;를 지날때 갑자기 -126이 입력되고 's'에서 -128이 되어버립니다. 무엇이 문제인가요?
>> 아스키 코드는 127까지만 표현이 가능한 코드입니다. 그 범위를 벗어나니 -> 오버플로우가 생기는 것이죠.
int의 정수범위를 초과하면 -> -가되면서 UB가 뜨는 것을 생각하시면 됩니다.
교안내 설명.

하지만 디버깅까지 정말 잘하셨습니다. ㅎㅎ
감사합니다.
살구 클럽에 대한 질문있습ㄴ디ㅏ
0
3
0
교안 158페이지 문의드립니다
0
24
2
코딩살구클럽 관련 건의사항
0
46
1
코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다
0
22
1
진행 방법 질문드립니다!
0
55
2
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
59
2
2주차 개념#12 트리 순회
0
28
2
백준사이트가 종료된다고 합니다.
0
287
2
백준 서비스 종료
9
894
1
sk 하이닉스 코테 대비
0
369
2
3-G 최댓값 질문
0
51
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
83
2
3-I 코드 질문드립니다.
0
62
2
3-N 질문 있습니다.
0
66
2
학습방법
0
102
2
4-H 질문 있습니다 (코드 리뷰)
0
66
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
172
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
69
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
64
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
51
2
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
0
68
2
함수별 시간복잡도
0
73
2
3-h 질문입니다.
0
49
1
안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.
0
53
2





