문자열

Jeon곰탱·2022년 11월 17일
0

c-lang

목록 보기
10/13

📌 개요

🎯 0개 이상의 문자들의 묶음을 문자열(String) 이라고함!

  • 문자 단위와 문자열 단위가 있다
//문자 단위는 불편하다😣
char str[8] = {'h','e','l','l','o'};
for(int i=0;i<5;i++){
	printf("%c",str[i]);
}

//문자열 단위는 편하다😃
char str[8] = "hello";
printf("%s", str);
  • 문자: 홑따옴표(''),%c
  • 문자열: 쌍따옴표(""),%s

📌 문자열 저장 및 기본 입출력

문자열의 표현 및 저장

🎯 문자, 숫자, 공백, 특수 문자등 쌍따옴표로 감싸면 모두 문자열

char str1[8] = "Hello"
char str2[] = "Hello"
char str3[10] = "안녕" // 한글은 한 글자가 2byte 먹음
  • 단 문자 배열을 문자열 상수로 초기화하는 것은 선언에만 가능! 나머지 안됨!
char str[20];

str[0] = 'h' //가능
str ="hello" //안됨!

null 문자

  • null문자는 문자열의 끝을 의미하는 특수문자
  • '\0' 표기, 아스키 코드값은 0 이다. (즉, '\0' == 0)
  • 문자열 처리 하는 지군이 되는 매우 중요한 요소, 널 문자를 포함하지 않는 문자 배열은 문자열로서 기능 못함

1. null 문자는 명시하지 않지만 문자열 상수의 맨 마지막에 항상 포함

ex) char a = 'a' //[a], char str[] = "a"//[a][\0] 다르다

ex) char str1[] = {'h','e','l','l','o'} => 5개의 문자
ex) char str2[] = "hello" => 6개의 문자열 포함

ex) printf("%d",sizeof(str2)) 확인 ㄱㄱ

따라서, char str3[5] = "hello" 컴파일 에러다.

2. C언어에서 문자열이라 함은 배열의 크기와 관계없이 널 문자 까지 문자들의 묶음을 지칭함, 즉 배열의 크기가 아닌널 문자에 의해 결정됨

printf 함수를 이용한 문자열 출력

	char str[8] = "hello";
    printf("%c",str[2]);
    printf("%s",str);
    
    char str1[20] = "hello world";
    for(int i=0;i<20;i++) printf("%c",str[i]);
    printf("..\n");
    
    pirntf("%s..\n");
  • %s 사용한다

scanf gets_s() 함수를 이용한 문자열 출력

	char ch[201];

	printf("200 자 이내로 입력해주세요 : ");
	1.scanf_s("%s", ch, (int)sizeof(ch)); // & 표시 없이 scanf 입력받기
    2.gets_s(ch) //gets_s로하기
	printf("%s", ch);
	return 0;
profile
Atomic habits make me

0개의 댓글