본문으로 바로가기

C언어 13일차(배열)

category 스마트팩토리/C언어 2020. 10. 22. 15:13

sizeof(score) / sizeof(score[10])을 10대신 사용한 이유는 10은 하드 코딩이기에 소프트 코딩으로 바꾸기 위해서입니다.

sizeof(score)가 40을 뜻하고 sizeof(score[10])이 4를 뜻하니 나누면 갯수가 나오게 됩니다.

sizeof는 그 안에 있는것의 용량을 뜻한다.

Tip. C언어에서는 변수를 맨위에 다 몰아서 쓴다.

#include<stdio.h>
#pragma warning(disable: 4996)

int main()
{
	int idx;
	int score[10];
	long sum = 0;
	float average;

	for(idx = 0; idx != sizeof(score) / sizeof(score[10]); idx++)
	{
		printf("Input score [%d]\n", idx + 1);
		scanf("%d", &score[idx]);
	}
	for (idx = 0 ; idx != 10; idx++)
	{
		sum += score[idx];		
	}
	average = sum / sizeof(score) / sizeof(score[10]);
	printf("Average score : %.2f\n", average);
    
    return 0;

}

문자열 길이구하기 코드이다.

#include<stdio.h>
#pragma warning(disable: 4996)

int main()
{
	char string[] = { "Happy Day" };
	int idx;

	for (idx = 0; string[idx] != '\0'; idx++)
	{
		printf("%c", string[idx]);
	}
	printf("\nString length : %d\n", idx);
	
	return 0;

}

문자열 로테이션 시키기위한 코드이다.

#include<stdio.h>
#pragma warning(disable: 4996)

int main()
{
	int idx;
	char ch;
	char str[9] = { "Rotation" };

	printf("-- 변경 전 문자열 --\n");
	printf("%s\n", str);

	for (idx = 0; idx != 9; idx++)
	{
		printf("%c | ", str[idx]);
	}
	for (idx = 0; idx != 4; idx++)
	{
		ch = str[7 - idx];
		str[7 - idx] = str[idx];
		str[idx] = ch;
	}

	printf("\n-- 변경 후 문자열 --\n");
	printf("%s\n", str);
	return 0;
}

문자열과 문자 배열에 대해 알아보겠다.

문자배열에서 마지막에 NULL이나 \N 이나 0이 들어가면 문자열이 된다.

밑에 코드에서 printf("%s\n",word)를 출력하게 되면  LOVE를 출력하게 되고 쓰레기값들이 출력이 된다.

0이 나올때까지 말이다.(메모리 부분에서 보면 알수 있다. 한자는 두개를 합쳐서 하나의 한자가 된다.)

 

밑에 코드에서 문자열을 만드는 방법 여러가지를 보여 주었다.

3번 방법이 하나씩 넣는 방법 그다음이 2번 그 다음이 1번 이런식으로 해서 최종이 제일 보편화 되었다.

#include<stdio.h>
#pragma warning(disable: 4996)

int main()
{
	char word[5] = "LOVE";			//최종				
	//char word[5] = { "LOVE" };		//1
	//char word[5] = {'L','O','V','E',0};	//2
	/*	
	word[0] = 'L';				//3
	word[1] = 'O';
	word[2] = 'V';
	word[3] = 'E';
	word[4] = 0;
	*/
	printf("[%c]\n", word[0]);
	printf("[%c]\n", word[1]);
	printf("[%c]\n", word[2]);
	printf("[%c]\n", word[3]);
	printf("[%c]\n", word[4]);
	printf("[%s]\n", word);

	return 0;
}

'스마트팩토리 > C언어' 카테고리의 다른 글

C언어 15일차(배열)  (0) 2020.10.27
C언어 14일차(배열)  (0) 2020.10.23
C언 12일차 (포인터)  (0) 2020.10.21
C언어 11일차  (0) 2020.10.20
C언어 10일차(포인터)  (0) 2020.10.15