[질문] 이게 어떻게 가능하죠?
글쓴이: 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
sprintf(query + strlen(query), "'%s')", tmp);query 가 가르키는 지점에서 query가 가진 문자열의 길이만큼 더하면, query가 가진 문자열의 마지막 포인트의 다음 포인트를 가르키게 됩니다. (query 가 가르키는 주소에서 문자열 길이만큼 더해진 주소지요)
다르게 표현하면, &query[strlen(query)] 로도 표현할 수 있겠죠.
댓글 달기