01 #include <stdio.h> 02 #include <stdlib.h> 03 #include <string.h> 04 #define SIZE 5 05 06 int main() 07 { 08 char str[20]= "hello world!"; 09 char *ptr = "good bye"; 10 11 printf("대입이전\n %s\n %s\n\n", str, ptr); 12 ptr = "hello world!"; 13 printf("대입이후\n %s\n %s\n, str, ptr); 14 15 system("pause"); 16 return 0; 17 }
반대로 문자열은 문자열 처리함수를 사용할 수 없다. 대입연산자를 사용하여 문자열을 처리한다.
01 #include <stdio.h> 02 #include <stdlib.h> 03 #include <string.h> 04 #define SIZE 5 05 06 int main() 07 { 08 char str[20]= "hello world!"; 09 char *ptr = "good bye"; 10 11 printf("대입이전\n %s\n %s\n\n", str, ptr); 12 ptr = str; 13 strcpy(ptr, "Happy birthday!!"); 14 printf("대입이후\n %s\n %s\n, str, ptr); 15 16 system("pause"); 17 return 0; 18 }
문자열의 변신
만약, 문자열이 문자배열을 대입 받았을 경우 문자열은 지금까지의 특성을 버리고 문자열처리함수를 쓸 수 있고, 역으로 대입연산자를 통한 문자열 대입이 불가능해진다. 사실 C언어에서는 string형이 없기 때문에 char*를 string형처럼 사용하기 위해서 들여온 문법으로 인하여 이러한 현상이 생기게 되었다.