[질문] 이게 어떻게 가능하죠?
글쓴이: zaru / 작성시간: 화, 2003/07/08 - 6:23오후
#include <stdio.h> #include <string.h> int main(void) { char query[2048]; char *tmp = "Adding string."; strcpy(query, "INSERT INTO list ("); strcat(query, "ID, No "); sprintf(query + strlen(query), "'%s')", tmp); printf("query=[%s]\n", query); return 0; }
실행결과 :
Quote:
query=[INSERT INTO list (ID, No Adding string.')]
위에서 코드 중
sprintf(query + strlen(query), "'%s')", tmp);
strlen()은 스트링의 길이를 반환하는 것 아닌가요?
어떻게 query에 strcat() 처럼 붙죠?
첨 보는 것이구 신기해서.. 누가 명쾌한 설명좀 부탁드립니다.
감사합니다.
[/code]
Forums:
[code:1]sprintf(query + strlen(
배열의 주소를 넣은 것이지요..
즉 포인터를 이용한 것입니다. ^^*
[code:1] sprintf(query + strlen
query 가 가르키는 지점에서 query가 가진 문자열의 길이만큼 더하면, query가 가진 문자열의 마지막 포인트의 다음 포인트를 가르키게 됩니다. (query 가 가르키는 주소에서 문자열 길이만큼 더해진 주소지요)
다르게 표현하면, &query[strlen(query)] 로도 표현할 수 있겠죠.
댓글 달기