[완료] 문자열 복사 후 해당 문자열 뒤에 이상한 값이 추가로 붙습니다.
글쓴이: secretdog1 / 작성시간: 목, 2014/10/02 - 2:18오후
소켓 서버 프로그래밍을 하고 있는 중인데 이상한 점이 생겨서 질문드립니다.
아래는 제가 따로 짜 본 문자열 추출 프로그램입니다.
#include <stdio.h> #include <string.h> #define BUF_SIZE 1024 int main(void) { char *recv_message = "GET /test.html HTTP/1.1\n"; char request[BUF_SIZE]; int i, len; for(i = 0; i < BUF_SIZE; i++) { if(recv_message[i + 4] == ' ') { break; } request[i] = recv_message[i + 4]; } printf("%d : %s\n", (int) strlen(request), request); return 0; }
여기서는 request 배열에 /test.html 이라는 10자리 문자열이 제대로 들어갑니다.
하지만 소켓 서버 프로그램에 저 프로그램을 넣으면 10자리 외에도 추가로 4 자리의 이상한 문자들이 들어갑니다.
/test.htmlq�6
이런 이상한 문자가 붙어서 나옵니다. 길이는 14자리로 나오구요.
무슨 문제가 있는건지 잘 모르겠습니다. 도와주세요..
----------
해결 완료
해결 방법 : request 문자열의 마지막에 0 을 붙인다.
Forums:
?
request 마지막에 널 문자 붙여주는 코드를 빼먹으셨네요.
for 문 끝나고 request[i] = 0; 정도로 하시면 됩니다.
감사합니다!!
헉 그런 간단한 실수를..ㅠㅠㅠ
정말 감사합니다!!!
댓글 달기