본문 바로가기
개발&코딩/C

배열 예제로 배우는 C언어 기초 strlen(), sizeof()

by 우동이 2020. 9. 10.
300x250

배열(array)

변수들의 집합이며 여러 값을 한 변수의 첫 번째 주소(0번째)를 사용해

메모리에 기억시켜 사용합니다.

배열은 복잡 다양한 정보의 양을 다뤄야 하는 면에서 좋은 기능을 보여줍니다.


C언어 - 배열이란?

#include <stdio.h>

int main()
{
	int a, b, c, d, e;
	
	printf("다섯개의 정수를 입력하시오 >> ");
	scanf("%d%d%d%d%d", &a, &b, &c, &d, &e);
	
	printf("%d\n%d\n%d\n%d\n%d\n", a, b, c, d, e);
    return 0;
}

>>> 다섯개의 정수를 입력하시오 >> 1 2 3 4 5
1
2
3
4
5

만약 다섯개의 int형 값을 받아야 한다고 가정했을 때

하나의 int형 값마다 변수를 하나씩 선언해 개별적으로 값을 받는 과정은

지나치게 비효율적입니다.

 

위 코드에서 배열은 5개의 값을 한 번에 저장합니다.

또한 배열을 다시 불러낼 때는 배열의 첫 번째 주소(0번째) 값이 호출됩니다.


C언어 - 배열 기초적인 사용법

#include <stdio.h>

int main()
{
	int num[5];
	for(int i=0; i<5; i++)
	{
		printf("정수를 입력하시오 >> ");
		scanf("%d", &num[i]);
	}
	
	for(int j=0; j<5; j++)
	{
		printf("정수의 값 출력  >> %d\n", num[j]);
	}
	
    return 0;
}

>>> 
정수를 입력하시오 >> 1
정수를 입력하시오 >> 2
정수를 입력하시오 >> 3
정수를 입력하시오 >> 4
정수를 입력하시오 >> 5
정수의 값 출력  >> 1
정수의 값 출력  >> 2
정수의 값 출력  >> 3
정수의 값 출력  >> 4
정수의 값 출력  >> 5

위 코드에서 선언된 int num [5]; 는

int형 배열이며

[5]는 배열의 사이즈(크기) 즉 5의 크기를 가진 배열이라는 뜻입니다.

 

정수형 배열 num은 5개의 변수만큼의 크기를 가집니다.

int 형 변수 하나가 C언어에서는 4 bytes의 크기를 가지니

num [5]은 20 bytes의 크기를 가집니다.


C언어 - 배열의 초기화와 문자 배열

#include <stdio.h>

int main()
{
	int num[]={1,2,3,4,5};
	char str[20];
	
	for(int i=0; i<5; i++)
	{
		printf("%d\n", num[i]);
	}
	
	scanf("%s", str);
	printf("문자열 출력 : %s", str);
	
    return 0;
}

>>>
1
2
3
4
5
hello
문자열 출력 : hello

배열에 미리 크기(size)를 지정해준 뒤 값을 받을 수도 있지만

별도로 값을 지정하지 않은 상태에서 배열에 값을 초기화해 줄 수도 있습니다.

위 코드에서 num 배열은 5개의 변수를 받았지만

따로 크기가 지정되어 있지 않습니다.

 

char str [20]; 문자형 배열 str은 20의 크기를 지정받았고

scanf() 입력 함수를 통해 값을 입력받아 hello라는 문자열을 출력했습니다.

 


C언어 - 배열 사이즈를 알려주는 sizeof 함수

#include <stdio.h>

int main()
{
	char str[]="hello world";
	int size=0;
	
	size=sizeof(str)/sizeof(str[0]);
	
	printf("문자열 str의 개수는 %d개입니다.", size);
	
    return 0;
}
>>> 문자열 str의 개수는 12개입니다.

sizeof() 함수는 크기를 () 내의 변수의 크기를 반환합니다.

위 size라는 변수에서는 str이라는 문자형 배열의 크기를 측정 해서

str에 몇 개의 문자가 들어있는지 출력했습니다.


C언어 - 배열 예제 1 // 입력한 단어의 길이 출력하기 + strlen()

#include <stdio.h>
#include <string.h>

int main()
{
	char str[50];	
	
	printf("문자열을 입력하시오 >> ");
	scanf("%s", str); 
	
	printf("입력하신 단어는 %s이고 단어의 길이는 %d\n", str,strlen(str));
	
    return 0;
}
>>> 
문자열을 입력하시오 >> hello
입력하신 단어는 hello이고 단어의 길이는 5

strlen() 함수는 문자열의 길이을 측정해 반환합니다.

str배열은 50의 크기가 선언되어있지만

scanf()를 통해 실제 입력받은 값은 hello=5 이므로

strlen()은 5를 반환합니다.

 

strlen()함수는 string.h 헤더에 포함되어있기에

사용을 위해서는 string.h를 선언해주어야 합니다.

string.h -> 문자열 헤더

 


다른글

 

 

1년간의 블로그 운영일지 - 2022, 수익, 조회수, 티스토리 블로그

20년도 7월부터 시작한 티스토리 블로그 운영이 어느덧 2년 반이 넘었습니다. 그리고 22년이 저물고 어느덧 23년도가 다가왔습니다. 제게는 살면서 가장 다사다난했던 22년도 한해였습니다. 그래

hobbylists.tistory.com

 

 

실내 크리스마스 트리 색감보정

사용된 색보정 도구 : Luminar4 루미나 4는 skylum에서 제작된 유료 색보정 툴입니다. 어도비 라이트룸과는 다르게 한번 구매 후 영구사용가능합니다. 또한 AI 기반의 강력한 자동화 보정 기능까지 제

hobbylists.tistory.com

 

 

오사카 도톤보리 여행기 4일차

8년 만에 다시 찾은 오사카 여행기 4일차 마지막 날 시작합니다. #쿠라스시도톤보리점 아침 일어나자마자 ...

blog.naver.com

 

 

300x250

댓글