2022. 3. 17. 16:35ㆍC언어
문자열(String)은 일련의 문자가 연속되어 있는 것이며 문자의 집합이 곧 문자열이다.
사람의 이름이나 에러 메시지 등과 같은 일반적인 문장을 문자열이라고 한다. 문자열 상수는 문자 상수와 달리 겹 다운 표로 감싸서 표현된다.
예시) 문자: 'a' 문자열: "abc"
' ' 홀따옴표랑 " " 겹 따옴표를 사용할 때는 분명히 구분해야 한다. 'S'와 "S"는 비슷해 보여도 내부적으로 엄청난 차이가 있다. 'S'는 S라는 문자 하나만 표현하지만 "S"는 한 글자로만 된 문자열이다.
문자열 상수는 있지만 이런 문자열을 저장할 수 있는 문자열 타입이라는 것은 없다.
자열 상수 ex) char ch[10]="abcdefg"; (c언어) string str="abcdefg"; (c++) a="abcdefg";(python)
이게 c언어의 단점이다.
ch[10]이거는 배열의 개념을 배워야 알 수 있다.
그렇기 때문에 그냥 그렇구나~하고 넘어가자
배열
배열의 선언 방법
[타입(자료형)] 배 열명[크기];
예시)
int arr [5] //정수형 변수 5개의 집합인 배열 array를 선언
double rate [10]; //실수형 변수 10개의 집합인 배열 rate를 선언
그리고 이렇게 할당된 배열에서 요소를 참조할 때는 [] 괄호와 첨자(index)를 사용한다. 첨자는 요소가 그 배열의 몇 번째에 있는지를 나타내는 순서 값이다.
배열이란 같은 타입의 변수를 모아 놓은 것이며 문자 배열이란 문자형 변수 여러 개가 연속적으로 배치되어 있는 것이다. 그림에서 각 격자는 1바이트의 문자들이며 각 격자에 문자 하나씩이 들어있다. 제일 끝에는 '\0'이 있는데 '\0'은 여기가 문자열의 끝임을 알리는 역할을 하며 널 종료 문자라고 한다. 메모리는 연속적인 공간이므로 끝을 명확히 해야 한다. 다른 자료형은 \0이 없어도 된다.

배열
배열의 범위는 반열림 기호를 사용한다 arr [10] 0~9까지 10개의 공간을 만들어준다.
#include <stdio.h>
int main() {
char ch[9] = "abcdefgh";
int numArr[10] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 };
printf("\n");
//여기에 중단점 찍고 배열 확인
printf("%s\n", ch);
printf("%d\n", numArr[0]);
printf("%d\n", numArr[1]);
printf("%d\n", numArr[2]);
printf("%d\n", numArr[3]);
printf("%d\n", numArr[4]);
printf("%d\n", numArr[5]);
printf("%d\n", numArr[6]);
printf("%d\n", numArr[7]);
printf("%d\n", numArr[8]);
printf("%d\n", numArr[9]);
//printf("%d\n", numArr[10]); 여기는 배열의 범위를 넘어갔음
return 0;
}
위 코드는 위에 배웠던 문자열 상수, 자료형이 정수인 배열을 선언 및 출력을 해봤다.
그리고 가장 많이 쓰는 코드가 있는데
예를 들어서 문제를 풀때 10명의 성적중 가장 큰 성적인 친구의 점수랑 그 가장큰 친구의 성적이 몇번째로 입력 받은 값인지 구하는 문제가 있다고 치자, 그러면 배열을 사용해서 문제를 풀어보면 배열을 이해하는데 도움이 되고, 앞으로 이러한 유형의 문제를 푸는데에 있어서 접근이 더욱 쉽다.
#include <stdio.h>
#pragma warning (disable : 4996);
int main()
{
int arr[10] = { 0, };
int max = 0;
int max_num = 0;
for (int i = 0; i < 10; i++) { //0~9 까지 10번 돌아가는 반복문이다.
scanf("%d", &arr[i]);
if (max < arr[i]) { //만약에 입력받은 값이 최대값보다 크면? 최대값을 갱신
max = arr[i]; //최대값 갱신
max_num = i; //입력받은 순서 갱신
}
}
printf("\n");
printf("가장 높은 점수를 받은 친구: %d\n", max);
printf("가장 높은 점수를 받은 친구를 입력받은 순서: %d", max_num+1);
return 0;
}
'C언어' 카테고리의 다른 글
c언어 - 조건문(if , else, else if) (0) | 2022.03.23 |
---|---|
c언어-(if 조건문) (0) | 2022.03.17 |
c언어-(자료형 실수형, 문자형) (0) | 2022.03.15 |
c언어 -(자료형) (0) | 2022.03.15 |
c언어 - (변수) (0) | 2022.03.10 |