우연하게 문자열에서 두번째줄에서 삽입해야 하는 경우가 있어서 막 짜다가 발생한 경운데
vs는 len1, len2가 저 밑에있는 케이스대로 넣으면 10 제대로 나오는데
gcc?는 len2가 0으로 나오더라고 대체 무슨 이유일까....
저기 중간에 있는 주석 풀면(첫 문자를 특정 문자로 넣으면) 다 10으로 정상출력 되고
#include <iostream> #include <algorithm> #include <cstring> using namespace std; int d[1001][1001] = { 0 }; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); char str1[1000]; char str2[1000]; //str1[0] = '?'; //str2[0] = '?'; cin >> (str1 + 1) >> (str2 + 1); int len1 = strlen(str1); int len2 = strlen(str2); cout << len1 << " " << len2 << "\n"; } /* DFSKDFSLD sjdfASDFN */
저리넣으면 str1[0] str2[0]에 뭐가 들어가 있는지에 따라 다르지
널문자 들어가있으면 0 나올꺼고 다른 문자들어가있으면 10 나올꺼고
저럴경우 str1[0]랑 str2[0]에 널문자 있으면 1번부터 넣었으니 유지될거고 그러면 0나오겠지
그러면 위에 둘 댓글에 따르면 둘다 len이 0이 나와야 되는거 아냐??? 나도 처음엔 이렇게 생각했는데 len1의 값이 10이라는게 이해가 안가
아니면 지금 저 상태에선 str1[0] , str2[0] 이 null 이 들어갔는지 아닌지 확인이 불가하다는거야?
바로 그거
초기화 안했으니까
쓰레기 값 에 대해서 알아보세요