8_1 #include < stdio.h > #include < string.h > // strlen() 함수의 사용
int main() { int length; int size;
length = strlen("string"); // 문자열의 길이 size = sizeof("string"); // 문자열이 저장된 공간의 크기 printf("string length : %d\n", length); printf("string size : %d\n", size);
return 0; }
8_1_1 #include < stdio.h > #include < string.h > // strlen() 함수의 사용
int mystrlen(const char *);
int main() { int length; int size;
length = mystrlen("string"); // 문자열의 길이 size = sizeof("string"); // 문자열이 저장된 공간의 크기 printf("string length : %d\n", length); printf("string size : %d\n", size);
return 0; }
int mystrlen(const char *ccp) { int iCnt = 0; while(1) { if( 0 == *ccp ) { break; } ++iCnt; ++ccp; } return iCnt; }
8_2 #include < stdio.h >
int main() { char *p; printf("%s %p\t\n", "abc", "abc"); // 문자열 "abc" 가 저장된 메모리의 printf("%s %p\t\n", "abc", "abc"); // 위치는 변한다. VS 10 버젼에서는 변함 // VS 6에서는 변하지 않음.
p = "abc"; // p 는 "abc"가 저장된 메모리의 주소값을 받는다. printf("%s %p\t\n", p, p);
return 0; }
8_3 #include < stdio.h >
int main() { char astring[] = {'a','b','c','\0'}; // 초기화를 할때만 통째로 복사해가져간다. astring = "ab"; // astring 은 "abc" 가 저장된 // 공간의 주소값 "상수"이다. return 0; // "ab" 도 주소값 상수 // 둘다 상수이므로 오류가 뜸 } |
8_4 #include < stdio.h >
int main() { char astring[] = {'a','b','c','\0'};
printf("%s\n", astring);// 출력 abc printf(astring); // printf 는 문자열의 주소를 넘겨주면 putchar('\n'); // 넣어둔 값을 출력한다. 그러므로 // 배열이름만 써도 그대로 출력된다. // 출력 abc
astring[1] = 'k'; // 'b' > 'k' 로 바뀜, 아스키코드를넣음 printf("%s\n", astring); // 문자열 상수를 변경가능
return 0; }
|
| |
|