C - 문자와 문자열

2022. 3. 10. 21:57·C

문자를 저장하기 위해 만들어진 char형이 있다. 하지만 char형은 문자 하나만 저장이 가능하다.

문자열은 그럼 못쓰는건가? 

char형의 배열을 이용하면 사용이 가능하다.

 

"HELLO"라는 문자열을 문자 배열로 저장하면 

5번 인덱스까지 값이 있다. 왜냐하면  '\0' 즉 NULL으로 문자열의 종료를 알려야 하기 때문이다.

문자열을 저장하기 위해 10바이트의 문자 배열을 잡았다고 가정 했을 경우 Seoul을 저장하기 위해 5바이트가 사용이 된다. 그럼 남은 5바이트에는 쓰레기 값이 저장되기 때문이다. 컴퓨터에게 알려주기 위함이니 꼭 들어가야한다.

 

* A, 'A', "A"의 차이점

A : 변수의 이름

'A' : 문자 A를 나타낸다

"A" : 문자 A만으로 이루어진 문자열을 나타낸다. "A"뒤엔 문자열의 끝을 알리는 NULL문자가 추가 된다.

 

문자 배열에 저장된 문자열을 출력하기 위해 반복문으로 각 배열의 원소를 출력해도 되지만 printf()함수의 %s 형식 지정자를 이용하면 좀 더 간단하게 출력이 가능하다.

char str1[6] = "Seoul";
char str2[3] = {'i', 's','\0'};
char str3[] = "the capital city of Korea";

 printf("%s %s %s\n", str1 ,str2, str3);

출력 결과

Seoul is the capital city of Korea

 

하나의 문자열에 저장된 문자들을 다른 문자 배열로 복사하는 예제이다.

char src[] = "Hello, my name is inho";
char dst[100];
printf("원본 문자열 = %s\n", src);
for (int i = 0; src[i] != '\0'; i++) {
    dst[i] = src[i];
}
    printf("복사된 문자열 = %s\n", dst);

출력 결과

원본 문자열 = Hello, my name is inho
복사된 문자열 = Hello, my name is inho

 

문자열의 길이를 구하는 프로그램이다.

char src[] = "Hello, my name is inho";
int i = 0;
while (src[i] != 0) {
    i++;
}
printf("문자열 %s의 길이는 %d 입니다.",src, i);

출력 결과

문자열 Hello, my name is inho의 길이는 22 입니다.

while문의 조건을 보면 src[i] != 0의 의미를 해석해보자

i번째 문자의 값이 0(NULL)이 나올때까지 계속해서 i값을 증가 시킨다는 뜻이다.

 

라이브러리 함수 strcpy()를 이용하여 문자열을 문자 배열에 복사하는 예제이다.

char str[10] = "Hello";
strcpy(str, "World");
printf("%s", str);

출력 결과

World

'C' 카테고리의 다른 글

C - 함수 포인터  (0) 2022.03.11
C - 문자 입출력 라이브러리  (0) 2022.03.10
C - 구조체  (0) 2022.03.09
C - 이중 포인터  (0) 2022.03.09
C - 자동변수와 정적변수  (0) 2022.03.08
'C' 카테고리의 다른 글
  • C - 함수 포인터
  • C - 문자 입출력 라이브러리
  • C - 구조체
  • C - 이중 포인터
해변
해변
이노 메모장해변 님의 블로그입니다.
  • 해변
    이노 메모장
    해변
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Java
      • C
      • Python
      • HTML
      • Project
      • Algorithm
      • DataBase
      • OS
      • Block Chain
      • CHATGPT
      • ML
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    wㅜ
    니꼴라스
    버블정렬
    Do it! 클론코딩
    시간복잡도
    재귀함수
    자료구조
    링크드리스트
    )
    알고리즘
    c
    빅오표기법
    정렬알고리즘
    AWT
    8퀸문제
    자바
    자바GUI
    Big-O
    java
    python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
해변
C - 문자와 문자열

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.