#include <stdio.h>
int main()
{
// 배열
int subway_1 = 30; // 지하철 1호차에 30명이 타고 있다.
int subway_2 = 40; // 지하철 1호차에 40명이 타고 있다.
int subway_3 = 50; // 지하철 1호차에 50명이 타고 있다.
printf("지하철 1호차에 %d 명이 타고 있습니다.\n", subway_1);
printf("지하철 2호차에 %d 명이 타고 있습니다.\n", subway_2);
printf("지하철 3호차에 %d 명이 타고 있습니다.\n", subway_3);
return 0;
}
#include <stdio.h>
int main()
{
// 여러 개의 변수를 함께, 동시에 생성
int subway_array[3];
subway_array[0] = 30;
subway_array[1] = 40;
subway_array[2] = 50;
for (int i = 0; i < 3; i++)
{
printf("지하철 %d호차에 %d 명이 타고 있습니다.\n", i+1, subway_array[i]);
}
return 0;
}
len()
: 리스트의 길이 반환len([1, 3, 5, 7])
range()
: 인자로 사용된 양의 정수까지의 리스트와 비슷한 값 반환range(5)
range(5)
는 [0, 1, 2, 3, 4]
와 비슷한 성질의 가짐. for
반복문과 함께 사용될 수 있음.for i in range(5):
print(i)
len()
과 range()
함수를 활용하여 위 C 코드를 파이썬에서 동일하게 구현 가능.# 리스트: 여러 개의 값을 동시에 저장하는 기능
# 길이가 3인 리스를 선언한 후에 나중에 항목을 업데이트 하고자 할 경우
# 먼저 리스트 항목을 임의의 값으로 초기화 해야 함.
subway_array = [0, 0, 0]
# 인덱싱을 이용한 항목 업데이트는 C 언어의 경우와 동일하게 진행
subway_array[0] = 30
subway_array[1] = 40
subway_array[2] = 50
# 리스트와 for 문은 매우 잘 어울림.
# C 언어의 for 문과 형식이 많이 다름.
for i in range(len(subway_array)):
print(f"지하철 {i+1}호차에 {subway_array[i]} 명이 타고 있습니다.")
#include <stdio.h>
int main()
{
// 어레이 항목값 설정 방법
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int i=0; i<10; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
#include <stdio.h>
int main()
{
// 어레이 항목값 설정 방법
int arr[10];
// 아래 코드를 실행하면 엉뚱한 값들이 확인됨.
for (int i=0; i<10; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
742975984
32572
0
0
4196848
0
4195712
0
-594061760
32764
// 배열 크기는 항상 상수로 선언해야 함.
/* 아래 코드 사용 불가
int size =10;
int arr[size];
*/
int arr[10];
#include <stdio.h>
int main()
{
// 어레이 항목값 설정 방법
int arr[10] = {1, 2}; // 셋째 값부터는 모두 0으로 지정됨.
// 아래 코드를 실행하면 엉뚱한 값들이 확인됨.
for (int i=0; i<10; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
1
2
0
0
0
0
0
0
0
0
#include <stdio.h>
int main()
{
// 어레이 항목값 설정 방법
float arr_f[5]={1.0f, 2.0f, 3.0f};
for (int i=0; i<5; i++)
{
printf("%.2f\n", arr_f[i]);
}
return 0;
}
1.00
2.00
3.00
0.00
0.00
int arr[] = {1, 2} // arr[2]와 동일한 의미임
len()
과 range()
함수 활용# 어레이 항목값 설정 방법
arr = [1, 3, 5, 7, 9]
# len()과 range() 활용
for i in range(len(arr)):
print(arr[i])
# 어레이 항목값 설정 방법
arr = [1, 3, 5, 7, 9]
# 항목 직접 사용
for item in arr:
print(item)
char
: 문자 자료형. 하나의 문자만 포함. 작은 인용부호 사용.#include <stdio.h>
// 문자 vs 문자열
int main()
{
// 문자
char c = 'A';
printf("%c\n", c);
// 문자열 끝을 의미하는 NULL 문자인 '\0'이 반드시 포함되어야 함.
// 즉, 지정된 문자열의 크기보다 1크게 선언해야 함.
// char str[6] = "coding";
char str[7] = "coding";
printf("%s\n", str);
// 일반적으로 문자열의 길이를 지정하지 않게 선언함.
char str1[] = "coding";
printf("%s\n", str1);
// 문자열의 크기에 1이 더해짐에 주의할 것
// 문자열의 크기는 unsigned long 자료형을 갖는 정수값임.
printf("%d\n", sizeof(str1));
return 0;
}
#include <stdio.h>
// 문자 vs 문자열
int main()
{
char str[] = "coding";
for(int i=0; i<sizeof(str); i++)
{
printf("%c\n", str[i]);
}
return 0;
}
c
o
d
i
n
g
(<== 빈칸이 이곳에 보여짐)
#include <stdio.h>
// 문자 vs 문자열
int main()
{
char kor[] = "나도코딩";
printf("%s\n", kor);
printf("%lu\n", sizeof(kor));
// 영어 1글자: 1 byte
// 한글 1글자: 2-3 byte
// char 크기: 1 byte
return 0;
}
나도코딩
13
# 문자 vs 문자열
# 문자
c = 'A'
print(c)
# 문자열의 자료형은 str
string = "coding"
print(type(string))
# 문자열의 길이는 사용된 문자의 수.
# C 언어와는 달리 Null 문자 고려하지 않음.
print(len(string))
# 한글의 경우 문자열의 길이는 글자 수임.
print(len("나도코딩"))
sys
모듈의 getsizeof()
함수 활용 가능__sizeof__()
메서드 호출함.from sys import getsizeof
getsizeof("나도코딩")
getsizeof("coding")
#include <stdio.h>
// 문자열 심화
int main()
{
char arr[7] = "coding";
// 위 문자열의 원래 정의는 다음과 같음.
// 끝에 문자열의 끝을 알려주는 널 문자를 포함하는 것에 주의할 것.
char c_array[7] = {'c', 'o', 'd', 'i', 'n', 'g', '\0'};
printf("%s\n", arr);
printf("%s\n", c_array);
return 0;
}
#include <stdio.h>
// 문자열 심화
int main()
{
// 배열의 길이를 사용된 문자열의 크기보다 크게 지정한 경우
char c_array[10] = {'c', 'o', 'd', 'i', 'n', 'g'};
// 마지막에 널 문자를 명시하지 않더라도 문자열 출력에 전혀 문제 없음.
// 널 문자가 자동으로 삽입되며, 남은 공간도 동일하게 취급됨.
// 이 점을 for 반복문으로 직접 확인 가능.
for (int i=0; i < sizeof(c_array); i++)
{
printf("%c\n", c_array[i]);
}
return 0;
}
c
o
d
i
n
g
#include <stdio.h>
// 문자와 아스키 코드
int main()
{
// 배열의 길이를 사용된 문자열의 크기보다 크게 지정한 경우
char c_array[10] = {'c', 'o', 'd', 'i', 'n', 'g'};
// 각각의 문자에 아스키(ascii) 코드라는 숫자가 대응됨.
// 이 점을 for 반복문으로 직접 확인 가능.
for (int i=0; i < sizeof(c_array); i++)
{
printf("%d\n", c_array[i]); // %d 사용에 주의
}
return 0;
}
99
111
100
105
110
103
0
0
0
0
#include <stdio.h>
// 문자와 아스키 코드
int main()
{
// 배열의 길이를 사용된 문자열의 크기보다 크게 지정한 경우
char c_array[10] = {'c', 'o', 'd', 'i', 'n', 'g', '\0', 'c' };
// 문자열 전체를 한꺼번에 출력하면 널문자는 무시됨.
printf("%s\n", c_array); // %d 사용에 주의
return 0;
}
coding
char
에 해당하는 자료형 없음.\0
)와 동일한 기능의 문자도 없음. 물론 널문자를 가리키는 문자열 \0
은 사용 가능.print('\0')