C언어 프로그래밍//문자열

신범철·2021년 10월 16일
0

21-2c수업

목록 보기
4/8

문자열

문자와 문자열

  • 문자는 하나의 문자로 이루어짐(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타입으로 출력함
문자열을 출력 수치를 문자열로 출력

profile
https://github.com/beombu

0개의 댓글