All is well

[YYBASIC0205/얌얌코딩] cstring 라이브러리 본문

C++/YYBASIC

[YYBASIC0205/얌얌코딩] cstring 라이브러리

D0YUN 2025. 2. 6. 08:32

재귀 호출과 트리 구조의 관계

  • 재귀 호출은 함수가 자신을 호출하면서 트리 구조를 형성합니다.
  • 배열에서 데이터를 찾는 방법은 O(n)의 시간 복잡도를 가지며, 최악의 경우 배열 크기 n에 비례하는 탐색 횟수가 필요합니다.
  • 반면 트리 구조를 사용하면 데이터 탐색이 보다 효율적이며, 특정 데이터를 찾기 위해 루트 노드부터 비교가 이루어집니다.
    • 트리 탐색은 현존하는 알고리즘 중에서 가장 빠른 편이며, 데이터 수가 증가할수록 탐색 시간이 급격히 줄어듭니다

cstring 라이브러러

`strcmp( A, B )`

: 두 문자열 A, B가 같은지 비교합니다. 같으면 0, 다르면 -1을 반환합니다.

`strlen( A )`

: 문자열 A의 길이를 반환합니다.

`strcpy_s( Destination, Source )`

: 문자열 Destination에 문자열 Source의 내용을 복사하여 붙여넣습니다.

 

// YYBASIC02_05
#include <iostream>
using namespace std;

void main()
{
    /* cstring */
    char nameA[10] = "ABC";
    char nameB[10] = "ABC";


    // 문자열 비교 - 기존 방법
    cout << "< not using cstring >\n";
    #pragma region Comparing Strings with a For loop
    int flag = 0;
    for (size_t i = 0; i < 10; i++)
    {
        if (nameA[i] != nameB[i])
        {
            flag = 1;
            break;
        }
    }

    if(flag == 0)
        cout << "nameA and nameB is SAME.\n";
    else
        cout << "nameA and nameB is DIFFERENT.\n";
    #pragma endregion


    // 문자열 비교 - strcmp( A, B ) : 두 문자열 A, B가 같으면 0 반환
    cout << "\n< using cstring >\n";
    #pragma region Comparing Strings with strcmp(A, B)
    if( strcmp(nameA, nameB) == 0 )
        cout << "nameA and nameB is SAME.\n";
    else
        cout << strcmp(nameA, nameB) << " : nameA and nameB is DIFFERENT.\n";
    #pragma endregion


    // 문자열 길이 - strlen( A )
    #pragma region length of String
    int len = strlen(nameA);
    cout << "\nlength of nameA : " << len << "\n\n";
    #pragma endregion


    // 문자열 복사 - strcpy_s( 붙여넣을 곳, 복사할 것 )
    #pragma region Copy String
    char nameC[10];
    strcpy_s(nameC, nameA);
    cout << "nameC : " << nameC << "\n";
    #pragma endregion
}

 

LV06 cstring 라이브러리