본문 바로가기
정보처리산업기사 공부 메모/프로그래밍언어 활용

📚 C 배열과 문자열

by Nyanggu 2023. 5. 2.
배열(Array) : 한 가지 자료형을 연속적으로 나열한 것

[형식1]  자료형 배열이름[배열의크기];
              배열이름[인덱스] = 값;

int score[3];
/* score[index] = value  배열 인덱스는 항상 0부터 시작한다. */ 
score[0] = 90;
score[1] = 100;
score[2] = 85;

 

[형식2] 자료형 배열이름[배열의크기] = {값1, 값2, 값3}

int score[3] = {90, 100, 85};

/* 만약 초기화 데이터가 배열의 크기보다 적다며, 나머지 원소들은 0으로 초기화 된다.
ex) int score[4] = {90, 100}; 	 index2,3은 value가 0 */

배열의 사용

   [형식]  배열이름[인덱스]

int main() {
    int array[3] = {19, 20, 21};
    for(int i = 0; i < 3; i++){
        printf("%d\n", array[i]);
    }
}
/* 19 */
/* 20 */
/* 21 */

 

이차원 배열

   [형식] 자료형 배열이름[행][열];

int main(){
	int array[3][4] = {
		{11, 22, 33, 44},
		{55, 66, 77, 88},
		{99, 111, 222, 333}
	};
	
	for(int i = 0; i < 3; i++){
		for(int j = 0; j < 4; j++) {
			printf("%d ", array[i][j];
		}
		printf("\n");
	}
}
/*
11 22 33 44
55 66 77 88
99 111 222 333
*/

 


문자열 

: C언어에서는 문자자료형인 char는 있지만 문자열을 저장할 수는 없다.
문자열을 저장하기 위해, 문자(char)배열을 사용한다.

 

string
index  0   1   2   3   4   5   6   7   8   9
value  y   e   l   l   d   o   r   a   d   o

printf("%c", string[7])
/* a */


char string[10] = {"y", "e", "l", "l", "d", "o", "r", "a", "d", "o"};
printf("%s", sting);
/* yelldorado */


char string[] = "yelldorado";
printf("%s", string);
/* yelldorado */

* 배열 크기 생략시 반드시 초기값 지정해야 함
: 왜? 초기값을 지정한 개수 만큼의 배열이 선언됨

 



* 문자열 변수 선언과 동시에 초기화를 하지 않으면 에러가 발생한다.
왜? 이미 할당된 배열에는 문자열을 바로 넣을 수 없다.
- 해결 방법 : string.h 헤더 파일의 strcpy함수를 사용한다.

 

* strcpy(대상문자열, 원본문자열) : 원본 문자열을 대상 문자열로 복사

ex)
char string[10]
string = "yell";       	  => x

char string[10]
strcpy(string, "yell");   => o

 

댓글