영어 - 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 |