04월03일에 진행한 수업 내용입니다.
문자열 관련한 헤더파일을 추가 해서 사용해 보았습니다.
strlen() | NULL 을 제외한 문자열 길이를 반환합니다. |
strycpy_s() | 문자열을 복사하여 넘깁니다. |
strcat_s() | 덧붙이기 문자열을 다른 배열에 덧붙입니다. |
strcmp() | 동일한 문자열인지 검사 동일한 문자열이면 0(false)을 반환합니다. |
#include<stdio.h>
#include<stdlib.h>
#include<string.h>//문자열 관련 기능 헤더파일
int main()
{
char str[20] = "So Simple";
char str2[20] = "Hello";
char str3[30] = "Hi";
printf("str 배열의 길이는 : %d \n", strlen(str)); //strlen은 NULL을 제외한 문자열 길이를 반환한다.
strcpy_s(str2, sizeof(str2), str); //문자열을 복사하여 넣는다. 기존에 존재했던 문자열은 사라진다.
printf("str 배열의 문자열들: %s \n", str2);
strncpy_s(str2, sizeof(str2), str, 3); //n을 끼면 원하는 길이까지만 복사한다. 매개변수로 값이 하나 더 추가됨
printf("str 배열의 문자열들: %s \n", str2);
strcat_s(str3, sizeof(str3), str); //기존 자리를 삭제하지 않고 더한다.
printf("str3 배열의 문자열들 : %s \n", str3);
strncat_s(str3, sizeof(str3), str, 2); //기존 자리를 삭제하지 않고 더하는데, n을 붙임으로서 매개변수 값이 역시 하나 더 추가됨, 해당 값만큼 자리를 추가 함
printf("str3 배열의 문자열들 : %s \n", str3);
return 0;
}
strycpy_s()의 매개변수는 다음과 같다.
(어디로, 얼마만큼, 무엇을)
strcat_s()또한 매개변수가 같지만 대체하는것이 아닌 기존 배열에 문자열을 이어 붙이는 역할을 한다.
n을 붙이면 역할은 같지만 마지막에 매개변수가 하나 추가 되는데, 해당 크기만큼만 작업을 수행한다.
알고리즘 문제를 풀어보자
길이 10인 배열을 선언하고 총 10개의 정수를 입력받는다.
일단 홀수부터 출력하고 짝수를 출력하도록 하자
입력값 예) 1,2,3,4,5,6,7,8,9,10
출력값 예)1,3,5,7,9
2,4,6,8.10
답은 아래와 같이 제출 했다.
출력만 바꿔보자
출력 예 ) 1 3 5 7 9 10 8 6 4 2
답을 아래와 같이 제출했다.
다음 문제는 10진수 정수를 입력받아서 2진수로 출력하는 프로그램입니다.
버블 정렬예제
#include <stdio.h>
#include <stdlib.h>
void DesSort(int arr[], int size);
int main(void)
{
int arr[7];
int i;
for (i = 0; i < 7; i++)
{
printf("입력: ");
scanf_s("%d", &arr[i]);
}
DesSort(arr, 7);
for (i = 0; i < 7; i++)
printf("%d ", arr[i]);
return 0;
}
void DesSort(int arr[], int size)
{
int i, j, temp;
for (i = 0; i < size - 1; i++)
{
for (j = 0; j < size - 1 - i; j++)
{
if (arr[j] < arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
'게임프로그래밍 개발 수업 > C언어 수업' 카테고리의 다른 글
C언어 4.11 스트림과 데이터의 이동 (0) | 2023.04.11 |
---|---|
04.06 C언어 수업 (0) | 2023.04.06 |
C언어 수업 포인터와 배열 (0) | 2023.03.30 |
C언어 배열에 문자열 대입, 포인터의 개념 이해하기 (0) | 2023.03.29 |
C언어 1차원 배열, 문자열의 입력과 출력 (0) | 2023.03.28 |