문자는 하나의 문자로 이루어짐(char)
문자열은 하나이상의 문자로 이루어짐(string) // char형의 배열로 이루어짐
문자열의 끝을 나타낸다.
문자열은 어디서 종료되는지 알 수가 없으므로 표시를 해주어야한다.
문자열 상수 : "HelloWorld"와 같은 프로그램 소스안에 포함된 문자열
문자열 상수는 메모리 영역 중에서 텍스트 세그먼트에 저장
데이터 세그먼트 ( 값을 변경할 수 있는 메모리 영역)
텍스트 세그먼트 ( 값을 읽기만 하고 변경할 수 없는 메모리 영역)
char *p = "helloWorld";
strcpy(p,"Goodbye")'
-> 에러 p는 이미 헬로월드라는 텍스트세그먼트의 값을 참조하는데 그 값을 변경하면 불가능
char *p = "helloWorld";
p = "Goodbye";
-> 가능
엔터키를 쳐야만 입력을 받는 이유
getchar()는 엔터키로 입력을 받아야 실행
getch()는 그냥 입력하면 바로 실행
strlen(s) : 문자열 s의 길이를 구한다.
strspy(s1,s2) : s2를 s1에 복사한다.
strcat(s1,s2) : s2를 s1의 끝에 붙여 넣는다.
strcmp(s1,s2) : s1과 s2를 비교한다.
strncpy(s1,s2,n) : s2의 최대 n개의 문자를 s1에 복사한다.
strncat(s1,s2,n) : s2의 최대 n개의 문자를 s1의 끝에 붙여넣는다.
strncmp(s1,s2,n) : 최대 n개의 문자까지 s1과 s2를 비교한다.
strchr(s,c) : 문자열 s안에서 문자 c를 찾는다.
strstr(s1,s2) : 문자열 s1에서 문자열 s2를 찾는다.
strtok(s,seps) : 문자열 s를 seps마다 분리시킨다.
p. 46 중간정검
1. strcpy(s2,s1)
2. 7
3. strcmp
4. 갯수제한해서 복사함
5. strcat(s1,s2)
6. 0
sscanf(str,"%f",&v); 문자열 -> 실수로
sprintf(str,"%f",v); 실수 -> 문자열로
int atoi(const char *str); : str을 int형으로 변환
long "" : "" long ""
double atof "" : "" double
p. 53 중간점검
1. 실수는 8바이트 , 문자열은 8바이트
2. atof, sscanf
3. printf는 string타입을 출력하고, sprintf는 수치형 타입을 string타입으로 출력함
문자열을 출력 수치를 문자열로 출력