C언어 프로그래밍//문자열
문자열
문자와 문자열
-
문자는 하나의 문자로 이루어짐(char)
-
문자열은 하나이상의 문자로 이루어짐(string) // char형의 배열로 이루어짐
NULL문자
문자열의 끝을 나타낸다.
문자열은 어디서 종료되는지 알 수가 없으므로 표시를 해주어야한다.
문자열 상수
-
문자열 상수 : "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); 실수 -> 문자열로
문자열을 수치로 변화하는 전용함수
- 전용 함수는 scanf()보다 크기가 작음
- stdlib.h에 원형 정의 - 반드시 포함
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타입으로 출력함
문자열을 출력 수치를 문자열로 출력
Author And Source
이 문제에 관하여(C언어 프로그래밍//문자열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sunil1369/C언어-프로그래밍문자열저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)