본문 바로가기

C언어

C언어 문자열

반응형

영어 - 1byte

한글 - 2byte

 

Char array[10];

 

영어:10글자

한글:5글자

 

배열은 내부적으로 포인터와 아주 흡사!

 

\0은 Null이다!

 

즉 이게 무슨 소리냐 하면

 

배열에서는 끝에 무조건 Null이 들어가게 되있다.

 

그래서 gets(input); 에서 문자를 입력받고 (엔터누르기 전까지 계속 입력받는다

왜? char input[1001]로 1001글자까지 선언할 수 있기 때문에.

 

그래서 count를 0으로 초기화하고 Null인 \0 만나기 전까지 count를 증가시켜주는 것이다.

(!=는 Not Same의 의미이므로)

 

즉, 쉽게 말해서 0,1,2,3,4번지까지 다 H,E,L,L,O 값인데 나머지 5~1000번지까지 Null이 된다.

 

그러면 당연히 문자열의 길이는 HELLO의 경우 5가 나온다.

 

 여기서 배운거는 gets(input); 과 Null 전까지 스탑을 하는 방법 정도이다!

 

 

여기서 %s는 string으로서 문자열을 출력해낸다.

 

HELLO를 했으니 HELLO가 나오는게 정상! gets(input); 이었으니 ㅎㅎ

 

%s역시 Null 전까지 알아서 출력을 해낸다.

 

 

문자열 길이 나타내는 것은 strlen함수를 쓰는데

 

#include <string.h>에서 헤더 파일을 받고 쓸 수 있다.

 

그래서 Love 입력한 길이가 딱 출력이 된다!!

 

 

 문자열 비교인데 inputOne과 inputTwo를 비교하는 것이다.

 

여기서 inputOne이 더 앞에 있는 숫자이면 출력이 -1, 둘이 서로 같으면 0 , inputOne이 뒤에있다면 1을 출력해낸다.

 

즉 A B -> -1 , B B -> 0 , B A -> 1이다.

 

strcmp함수가 사전 구현, 영단어 구현할때 마니 사용하는 함수라고 한다 ㅎㅎ

 

마지막은 내가 잘아는 strcpy 함수!

 

 

 

이 함수는 strcpy(A,B) 이렇게 있을때 B의 값을 A에다가 복사하는 것이다.

 

그래서 result[5]를 선언했는데도 I Love You가 나온다!! (배열 크기를 무시한다)

 

문자열 끄으으읏!!

반응형

'C언어' 카테고리의 다른 글

C언어 구조체의 활용(2)  (0) 2022.07.18
C언어 구조체  (0) 2022.07.18
C언어 포인터  (0) 2022.07.18
C언어 다차원 배열  (0) 2022.07.18
C언어 배열  (0) 2022.07.18