c언어에서의 Null 값 : \0
c에서는 문자열 뒤에 \0이라는 null 값을 마지막에 붙이는게 규칙.
gets() 통해 하나씩 배열 안에 다가 값을 집어 넣을 수 있다.

string.h 라이브러리를 통해 문자열 관련 메서드를 사용가능.


아래처럼 words라는 배열안에 각 길이가 다른 문자열들을 저장할 수 있게됨.

srtlen(문자열)은 문자열의 길이를 출력해주는 메서드.

strcmp(문자열1, 문자열2)는 두 문자열을 비교.
왼쪽 값이 사전적으로 더 앞에 있다면 -1, 같다면 0, 오른 쪽 값이 더 사전적으로 앞이라면 1을 출력.
참고로 숫자를 출력하기 때문에 %d를 사용해서 출력했다.

왼쪽이 더 빠르니 -1이 출력된다.

문자열 복사
strcpy(복붙할 문자열, 복사당할 문자열)

포인터를 배열안에서 사용하기 때문에, 더 짧은 길이의 result 배열이 input 배열을 복사해서 출력이 가능하다.

구조체
구조체: 객체 지향 프로그래밍에 말하는 클래의 모체가 되는 것으로, 여러 개의 자료형을 묶어서 새로운 자료형을 만들 수 있는 방법.
(CSS의 클래스처럼 설계해놓은 것들을 가져다가 바로바로 쓸 수 있음. )
<예시>

stdlib.h 은 난수생성, 문자열 형식을 다른 형식으로 변환, 의사 난수 생성, 동적 메모리 관리 등의 함수를 포함하고 있다.
구조체의 하위 자료형들의 변수들을 바 불러와서 쓸 수 있다.
<예시 2> 입력받아서 출력해보기

1.s.name만 앞에 &기호가 없다.
그 이유는 배열은 그 자체로 포인터의 기능을 가지고 있어 따로 입력받을 때 주소값으로 이어주지 않아도 된다.
2. double 형은 입력 받을 때 %Lf 라 써줘야함.
3. float 형은 입력받을 때 %f 라 쓰면됨.
<예시 3>두 점 사이의 거리 구하기(구조체로 main에서 변수 선언하고, 구조체의 하위선언 변수 사용하기)


참고: 두 점 사이의 거리 구하는 공식(피라고라스 공식 응용)


rect 형의 r이라는 사각형은 점2개(좌측 위 점, 우측 아래 점)의 각 좌표(x,y)값으로 이뤄졌으니 css에서 하부 목록 불러오듯이, 계속 하부에 하부 요소를 불러서 쓰고 있는 중임.
상위의 함수인 구조체 끼리의 비교는 불가.
주석 아래처럼 구조체의 하부 요소끼리의 비교를 다 해줘야 함.

구조체의 배열
char 배열에는 한글이 10개 들어 갈 수 있다. 왜냐하면 한글은 2byte씩 잡아먹기 때문.
영어는 1byte씩 잡아 먹어서 20개의 배열 20개의 영어가 입력가능.

구조체의 student의 배열 list[]
i번 돌면서 각 배열에 구조체의 각 요소값을 따로따로 입력받음.

출처: https://www.youtube.com/watch?v=WpWSD7QR8EA&list=PLRx0vPvlEmdDNHeulKC6JM25MmZVS_3nT&index=16
'📈알고리즘 > 알고리즘' 카테고리의 다른 글
C언어 공부(3)[동적 메모리 할당] (0) | 2023.02.08 |
---|---|
C언어 자료구조[함수 포인터] (0) | 2023.02.07 |
C언어 공부(1)[라이브러리 math, limit 및 배열, 재귀함수, 포인터] (0) | 2023.02.06 |
C언어 기초정리(입력, 출력, 함수구조) (0) | 2023.02.06 |
다시 공부하는 c언어 (0) | 2023.02.06 |