반응형

C언어는 문자열을 표현하기 위해 배열(Array)를 활용한다.

 

그리고 문자열을 표현하기 위해 보통 1byte 크기인 'char' 타입을 사용한다.

문자열의 끝은 NULL을 사용한다. (문자열 마지막에 \0 이 있으면 문자열의 끝으로 인식)

고로 문자열의 크기는 마지막 1개가 더 필요하다. ("hello world!"의 경우에는 각 알파벳 + 띄어쓰기 + NULL 하여 총12개 필요)

각 배열에 들어가는 문자 하나하나는 모두 아스키코드이다. (아스키코드 번호임)

 

선언하고 만드는 방법은 아래와 같다.

<타입> <배열이름 [배열크기] >

// NULL과 띄어쓰기를 포함하여 총 13개의 char 크기가 필요
char str[13] = "Hello world!";

배열의 크기는 미리 정하지 않고 배열을 입력하면 알아서 사이즈가 잡히게 된다.

char str2[] = "hello world!";
반응형

아래 예시 코드를 돌려서 크기를 확인

#include <stdio.h>

/*
	배열은 보통 char형을 사용.
	알파벳 하나하나가 배열 한칸에 할당.
	문자열 구조는 맨 끝에 NULL문자( '\n' )가 들어가야 함
*/

int main()
{
	// NULL문자를 포함한 13개 배열이 할당되어야 함.
	char str1[13] = "nice to meet";
	// 배열크기 자동조절, hello NULL 문자 총 6개 배열이 할당됨. str2라는 주소에 값 할당.
	char str2[] = "hello world!";

	printf("배열 크기 : %d", sizeof(str1));
	printf("배열 크기 : %d", sizeof(str2));

	return 0;
}

 

(결과)

 

* 문자열을 scanf로 받는 방법.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	// 아래와 같은 배열명 선언은 배열 변수명 자체가 주소값으로 저장됨.
	char str[50];
	int index = 0;

	printf("문자열 쓰시오. :");
	// 문자열 변수명 str은 그자체가 주소값을 지칭하므로 &없이 사용. 즉, &str 으로 사용하지 않음.
	scanf("%[^\n]", str);
	printf("입력받은 문자열 : %s\n", str);

	printf("문자 단위 출력: ");
	while (str[index] != '\0')
	{
		printf("%c", str[index]);
		index++;
	}
	printf("\n");

	return 0;
}

(결과)

아래에서 scanf에 %[^\n]  을 입력한 이유는, 띄어쓰기 키가 와도 문자열을 계속 이어서 str에 저장하기 위함.

 

 

 

 

 

 

 

반응형
반응형

앞서 재귀함수에 대한 예시를 설명했다.

https://ansan-survivor.tistory.com/1234

 

[C언어] 재귀함수란? 재귀함수 예시, 쉬운 설명

재귀함수란? 영어로 Recursive Function이며, 뜻 Recursive : 반복되는, 되풀이되는 이다. 즉, 자기자신을 호출하여 계속 불러오는 함수. 그러나 말이 너무 어렵다. 함수는 반환이 되어야 비로소 끝이 난

ansan-survivor.tistory.com

 

위에서 설명했던 재귀함수는 그러면 과연 어디에 쓸 것인가?

대표적인 사례로 펙토리얼 계산에 대표적으로 사용된다.

(펙토리얼 계산해주는 사이트)

https://www.inchcalculator.com/factorial-calculator/

반응형
 

Factorial Calculator - Solve n!

Calculate the factorial n! of any positive whole number, plus learn how to use the formulas to solve factorials.

www.inchcalculator.com

 

펙토리얼 계산을 일반항으로 모델링을 하면 아래와 같다.

펙토리얼의 정의

펙토리얼은 계속해서 f(n) 함수 내에서 f(n-1)을 연산 하므로 재귀함수의 성질을 갖고있다.

이를 C언어 재귀함수로 표현이 가능하다는 것이다.

#include <stdio.h>

// Recursive라는 함수를 만듦
int Factorial(int n)
{
    // n이 0이면 1을 리턴
    if (n == 0)
        return 1;
    else
    // n이 0이 아닐 경우 n x f(n-1) 계산을 계속 진행
        return n * Factorial(n-1) ;
}

int main(void)
{
    // 각 펙토리얼 계산 결과 확인
    printf("factorial 3! = %d\n", Factorial(3));
    printf("factorial 5! = %d\n", Factorial(5));
    printf("factorial 10! = %d\n", Factorial(10));

    return 0;
}

 

(결과)

결과가 맞는지는 아래 펙토리얼 계산 사이트를 이용해본다.

https://www.inchcalculator.com/factorial-calculator/

 

Factorial Calculator - Solve n!

Calculate the factorial n! of any positive whole number, plus learn how to use the formulas to solve factorials.

www.inchcalculator.com

 

 

반응형
반응형

재귀함수란?

영어로 Recursive Function이며, 뜻 Recursive : 반복되는, 되풀이되는 이다.

즉, 자기자신을 호출하여 계속 불러오는 함수.

 

그러나 말이 너무 어렵다.

 

함수는 반환이 되어야 비로소 끝이 난다. 그러나 첫번째 함수는 Recursive( )를 만나면 첫번째 함수는 끝나지 않고 계속 자신을 메모리 다른곳에 복사 시켜 또 실행이 된다. 이것은 반복적으로 실행되며, 최종적으로 함수가 마지막에 리턴이 되어야 종료가 된다.

(리턴 조건이 없으면 모든 자원을 다 가져가서 컴퓨터가 맛이 갈것이다)

즉 이러한 호출이 가능한 이유는 바로 메모리에 "복사본을 만들기 때문" 이다.

 

 

* 아래 리턴조건이 들어가 있는 재귀함수의 예시

#include <stdio.h>

// Recursive라는 함수를 만듦
void Recursive(int num)
{
    if (num <= 0)
        return;
    printf("Recursive func num %d\n", num);
    Recursive(num - 1);    // Recursive()함수를 실행 (자신을 다시 실행)
}

int main(void)
{
    Recursive(5);
    return 0;
}

(과정)

아래와 같이 Main함수가 진행하다가 Recursive를 만나서 5값이 입력되면,

Recursive 내 5-1 연산이 반복적으로 4-1 , 3-1, 2-1, ... 1-1 = 0 이 되어 Return 조건에 만족하면

클릭하면 확대

이제 num값으로 0이 계속 입력 되므로 if 조건에 만족한다. 그래서 계속 함수를 빠져나오는 return문을 반복함으로써 처음 시작했던 main이 있던 자리로 가서 main함수를 끝낸다.

클릭하면 확대

 

 

(결과)

반응형

 

 

 

재귀함수의 활용, 펙토리얼 계산 (Factorial calculation)

https://ansan-survivor.tistory.com/1235

 

[C언어] C언어 재귀함수의 활용, 사용 용도, 예제 (재귀함수 팩토리얼 Factorial 계산, n!)

앞서 재귀함수에 대한 예시를 설명했다. https://ansan-survivor.tistory.com/1234 [C언어] 재귀함수란? 재귀함수 예시, 쉬운 설명 재귀함수란? 영어로 Recursive Function이며, 뜻 Recursive : 반복되는, 되풀이..

ansan-survivor.tistory.com

 

 

 

반응형
반응형

봄 - 가을

 

 

여름

 

 

겨울

 

 

반응형
반응형

워드프레스에서 무료로 미국 주식시장에 대한 정보를 불러올 수 있는 플러그인이 있다.

stockdio 라는 플러그인.

 

 

1. 플러그인에 stockdio 라고 치면 여러개가 나온다. 그중에 차트를 쓰기 위해서는 historical chart 플러그인

 

 

2. stockdio 사이트에 가서 회원 가입을 하고 API 정보를 받는다.

https://services.stockdio.com/howtouse

 

Documentation - Stockdio

Stockdio Documentation Stockdio is a set of endpoints that allow developers, webmasters and power users to easily include financial features in their web and mobile applications, as well as blogs and other financial outlets. There are two types of endpoint

services.stockdio.com

 

3. endpoint에 가서 원하는 주식의 정보 html 코드를 받아온다.

해당 코드를 복사

반응형

 

4. 내 페이지에 해당 html 코드를 넣으면 표시된다.

 

 

반응형
반응형

* break문, Continue 은 반드시 반복문 내에 있을때 사용이 가능하다.

 

두 함수의 큰 공통점은 남은 작업을 생략하고 조건검사지점까지 검사를 하고, 완전히 반복문을 빠져나갈지, 아니면 반복문 초기상태로 올라와서 다시 할지 차이이다.

break문은 끝내고 while 반복문 밖으로 나가서 나머지 아래 작업들을 계속 진행.
Continue문은 처음 while 반복문이 시작했던 지점으로 다시 돌아와서 작업을 계속 하라는 것.

 

특정 반복문이 계속 될 때, 어느 조건이 만족되면 탈출할 수 있는 문이 break 이다.

아래는 i가 1이 계속 증가하다가 100을 넘어서면 탈출한다.

#include <stdio.h>


int main(void)
{
    int i = 0;

    while (1)
    {
        if (i > 100)
        {
            break;
        }

        i++;
        printf("%d\n", i);
    }



    return 0;
}

(결과)

반응형

 

반면에 continue문은 어떤 조건을 체크했을때 조건이 맞다면 다시 계속 반복하던것을 계속 하라고 할 수 있다.

 

 

 

 

 

 

 

 

 

반응형
반응형

대부분의 조건연산자는 if, else if, else 문으로 분기하여 사용한다.

그러나 잘 쓰지 않지만 (잘 보기 힘들지만) 한줄짜리로 똑같은 역할을 하는 조건연산자를 만들 수 있다.

이를 보통 "삼 항 연산자" 항이 3개인 연산자 라고 하여.. 불린다.

 

사용법은 간단하다.

 

그저 한줄에 =>     ( 조건 ) ? ( a  ) : ( b  ); 이러한 형식으로 입력하면 된다.

그리고 조건이 참이면 왼쪽값 a가 반환되고, 거짓인 경우 오른쪽 b가 반환된다.

#include <stdio.h>


int main(void)
{
    int a = 2;
    int b = 3;

    int result = 0;

    // 조건이 맞냐?  참이면 왼쪽 반환, 거짓이면 오른쪽 반환
    result = (a>b) ? (a) : (b);

    printf("%d\n", result);

    return 0;
}
반응형

 

 

반응형
반응형

 

1. 테마 설치

Colormag를 검색하여 테마 설치 및 활성화

 

 

2. 데모 불러오기

    데모를 불러오는 플러그인 설치

    demo importer 클릭 후 Main 데모 import

    이제 내 홈페이지가 데모 기사들로 바껴있음을 알 수 있다.

 

이제 나머지는 입맛에 맞게 수정한다.

 

 

(참고 영상)

https://www.youtube.com/watch?v=MRuC-x37Nic 

 

 

반응형
1···33343536373839···181

+ Recent posts