c 17

[c] 연산 구조체를 정의하고, 변수를 생성하여 구조체를 반환하기

구조체를 정의하고, 그 구조체 내에 덧셈 멤버를 추가하여 변수 내에서 불러오는 예제이다. calcType이라는 구조체를 정의하여 addition, subtraction, multiplication이라는 멤버를 추가하였다. clacType 구조체 내에서 calc_all이라는 변수를 설정하여, 구조체 내의 함수를 정의하였고, 결과를 반환시켰다. 메인함수에서는 결과값을 변수형식으로 입력받아, 덧셈, 뺄셈, 곱셈 연산을 수행하였다.

Algorithm 2023.12.12

[c] 문자열을 입력 받고, 문자열 내부의 특정 문자열을 교체하기

문자열을 입력 받고, 문자열 내부의 특정 문자열을 교체하는 예제이다. 표준 입출력 함수, 문자열 처리함수, 일반 유틸리티 함수를 사용하기 위해 필요한 헤더 파일을 import하였다. [replaceSubstring 함수] 임시 문자열을 temp에 저장, 문자열 길이는 len에 저장, 원본 문자열은 str, 그리고 복사한 문자열은 result에 복사되도록 세팅하였다.그리고 while문을 통해 result 문자열에서 from 문자열을 찾을 때까지 반복했다. [main함수] char 배열과 배열 크기를 설정했다. 그리고 fgets를 사용하여 문자열을 받아 str에 저장하였다. print문은 입력 문자열, 교체되기를 원하는 문자열, 교체 문자열로 나누어 입력받았고, 결과 문자열을 출력하도록 설정했다.

Computer Science 2023.12.01

[c] strcat함수 구현(문자열 이어붙여 출력하기)

c에서 문자열을 결합하여 출력하는 프로그램이다. 가장 먼저 문자열 관련 함수를 출력하기 위해 #include 를 import 한다. line 4~23에서는 my_strcat 함수를 정의하였다. 두개의 문자열 포인터를 매개변수로 받아 'src' 문자열을 dest 문자열 끝에 복사한 후, while 루프를 돌렸다. main 함수에서는 char와 src 배열을 설정하였다. (배열 크기는 충분히 크게 설정하였다) while 문에서는 quit를 입력하는 탈출조건이 아닐 경우에 입력을 계속 받도록 설정하였다. fgets(dest, sizeof(dest), stdin)에서는 표준 입력에서 문자열을 읽어 dest에 저장했다. 입력은 사용자로부터 source string과 destination string을 받았다. 그..

Computer Science 2023.11.30

[c] Call by value vs Call by reference

함수에서는 call by value 혹은 call by reference를 이용하여 값을 입출력한다. call by value는 함수 호출 시 넘기는 인자의 값이 매개변수에 복사되어 전달되기 때문에, 함수 내에서 값을 변경한다고 할 지라도 원본값은 변경되지 않는다. 원본 데이터를 터치하지 않기 때문에, 원본 데이터를 지키는 데에 있어서 안전하다. 그러나 값을 복사하여 사용하는 형태이기 때문에 메모리 사용량이 증가한다는 단점을 지닌다. call by reference는 함수 호출 시 인수로 전달되는 변수의 참조값(주소)을 함수 내부로 전달하는 방식으로, 인자로 전달되는 값이 변수의 주소이다. 따라서 변수 값을 변경하게 된다면 주소에 저장된 값도 변경된다. 이는 직접 참조에 유리하다는 장점을 가지지만, 원래..

Computer Science 2023.11.15

[c] 달러화, 유로, 엔화 환전 기능 구현하기

한화값을 입력받아 달러, 유로, 엔화로 환전하는 예제이다. 필요 헤더파일을 먼저 import한 후, 각 화폐를 함수를 통해 정의해준다. 엔화는 int값으로 받으라고 한 문제 조건으로 인해 int형으로 선언하였다. 다음은 메인 함수이다. input으로 이용할 한화 값을 정의해준 후, scanf 함수를 통해 입력받는다. 그리고 함수값을 투입하여 각 환전값을 출력하게 유도하였다.

Algorithm 2023.11.12

[c] 이니셜을 입력받고, 각 이니셜 값으로 나누어 출력하기

이니셜을 입력받고, 각 이니셜을 쪼개어 출력하는 예제이다. 먼저 이니셜 값을 3개로 설정하여 initial 1,2,3으로 각각 명명한다. 그리고 scanf함수를 이용하여 이니셜 값을 한꺼번에 받은 후, 다시 나누어 출력하는 프로세스를 진행하였다. [생각해볼 점] 초기 설정시 이니셜 1개만 받아서 출력할 수 있는 방법은 없을까? strok이라는 함수가 있는 것 같은데, 공부해 보아야겠다.

Algorithm 2023.10.28

[c] 삼각형의 세 변의 합을 출력하기 (삼각형이 아니면 오류메세지 출력)

삼각형의 각 변의 길이를 입력받아, 세 변의 길이의 합을 출력하는 예제이다. 삼각형의 가장 큰 특징 중 하나는, 짧은 두 변의 길이의 합이 가장 긴 변의 길이보다 길어야 한다는 것이다. 이를 충족시키기 위해, 연산자 &&를 사용하여 조건문을 생성하였다. 그리고 조건을 만족시키지 못할 경우, 삼각형이 아니라는 문구를 출력하게 하였다. [주의할 점] double type은 scanf 과정에서 lf(long float)형식을 받아주어야 한다. 처음에 f(float)로 받았는데, 결과값이 제대로 출력되지 않았다.

Algorithm 2023.10.20

[c] 세 수를 입력받아 최대, 최소값 출력하기

세 수를 입력받고, 그 수들 가운데 최대, 최소값을 출력하는 예제이다. 메인함수를 작성하기 전에, 최대, 최소값을 정의해 주어야한다.(c에서는 최대,최소값 함수가 내장되어 있지 않다) 정수를 3개 입력받는다고 했을때, 하나의 수인 a값이 가장 크다고 가정한 후 b가 더 클때와 c가 더 클 때에 대해 조건문을 달아 설정해준다. 마찬가지로 최소값 함수도 작성한다. 메인함수이다. 메인 함수에서는 3개의 정수를 받아 출력하게 설정하면 된다. 이 때 max함수만 설정해주는 것이 아니라, max 함수 뒤에 number1,number2,number3라는 입력값을 설정해주어야만 세 수 간의 비교가 진행된다.

Algorithm 2023.10.19
반응형