문자열

FeelSoo·2022년 6월 19일
0

1. 문자와 문자열의 차이


문자 :

char a; // 단일의 문자 선언 가능

» 입, 출력 시 %c를 사용함

문자열 :

» 문자의 배열로 선언함

-- 예) char a[10];

» 포인터 변수로 선언함

-- 예) char *a;

» 문자열의 마지막 문자는 언제나 NULL임

» NULL의 아스키 코드 값은 ‘\0’이며, NULL 대신 ‘\0‘으로도 나타냄

» 문자열의 끝은 항상 NULL이므로 문자형 배열 선언시 나타내고자 하는 문자열보다 크기를
하나 크게 함

» 문자열 출력 시 NULL문자를 만나기 전까지 출력

» 입, 출력 시 %s를 사용함



2. 문자배열 초기화


( 1 ) 포인터를 통한 문자열 선언


< 포인터를 통한 문자열 접근 오류 예시 >

#include <stdio.h>

int main() {

char *tmp = "Hello";
tmp[1] = P; 	// error가 출력된다. 포인터 변수를 통한 문자열 검색 및 대입, 변경은 불가능하다

...
};



( 2 ) 문자 배열을 통한 문자열 선언


  
< 문자 배열 초기화 오류 예시 >


< 첫번째 예시 >

#include <stdio.h>

int main() {

char tmp[10] ;
	tmp = "hello"; // 오류. 이미 선언된 배열에 문자열 초기화 불가능. 배열 선언 즉시 문자열 초기화하여야 함.
    
    			// 혹은 이미 선언된 배열의 각 인덱스를 통하여 문자 하나하나 입력 가능
                
... };





< 두번째 예시 > 

 char a[3] = "abc" // error. 문자열 마지막값 NULL값이 추가되어 총 4바이트가 필요한데 선언은 3byte이다. a[4]로 선언 필요. 





3. 문자 & 문자열 입출력 함수 비교

주의 : scanf로 문자열 입력 시 공백문자 ( spacebar) 또는 엔터 입력 전 까지의 데이터만 저장

--- 띄어쓰기 불가능


주의 : gets로 문자열 입력 시 엔터 입력 전 까지의 데이터만 저장

-- spacebar 허용





4. 문자열 관련 라이브러리 함수


( 1 ) #include <ctype.h>




( 2 ) #include <string.h>

profile
세상은 넓고 배울건 많다

0개의 댓글