[C++] char 배열을 memset으로 끝까지 0으로 초기화 한 후 출력하면 에러
글쓴이: jang900824 / 작성시간: 수, 2012/11/28 - 12:37오후
char temp[35]; memset(temp, '0', 35); cout<<temp<<endl;
위의 소스코드를 실행하면 0이 35개가 출력되어야 하지만 실제론 0이 35개 출력되고 그 뒤에 이상한 글자 4~5개 정도가 더 출력 됩니다.
아마 temp[34]가 공백이 아니라서 문자열의 끝부분을 찾지 못하는것 같은데, temp[34]를 \0으로 설정하는 대신 다른 방법이 있을까요?
Forums:
없습니다.
없습니다.
없는것같은데 이렇게라도
정말 불쌍한 코드죠..~~
완벽한 세상을 위하여!
없는것같은데 이렇게라도 2
char temp[35] = { 0, };
memset(temp, '0', 34);
cout<
없는것같은데 이렇게라도 3 string
없는것같은데 이렇게라도 3
없는것같은데 이렇게라도 4 #include
없는것같은데 이렇게라도 4
저는 이렇게 생각했습니다.
모두들 감사합니다
으로 할 수 밖에 없었네요.
이런 방법도 있습니다.
00000 문자열을. memcpy 나 strcpy 등으로 복사해서 사용하는것도 가능해 보입니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
음 ..
일반적으로 string 이라 함은 null-terminated string 을 의미합니다.
대부분의 string 을 다루는 함수들은 null-terminated string 을 가정하고 작성되어 있습니다.
만약 null-terminated 되지 않은 문자열을 다루고자 한다면, 사실상 binary data 와 다를 바 없으니..
길이(length) 정보를 주고 해당 길이만큼만 정확하게 처리하는 루틴을 따로 만드셔야 합니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
댓글 달기