λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Programming/C language

10 string (feat. random ν•¨μˆ˜)

by Dowon Kang 2024. 1. 23.

C μ–Έμ–΄μ—μ„œ λ¬Έμžμ—΄μ€ λ¬Έμžλ“€μ˜ λ°°μ—΄λ‘œ ν‘œν˜„λ©λ‹ˆλ‹€. λ¬Έμžμ—΄μ€ μ’…μ’… null 문자('\0')둜 λλ‚˜λ©°, 이 null λ¬ΈμžλŠ” λ¬Έμžμ—΄μ˜ 끝을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. C μ–Έμ–΄μ—μ„œλŠ” λ¬Έμžμ—΄μ„ char λ°°μ—΄λ‘œ μ •μ˜ν•˜κ³ , 이 배열을 μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ λ‹€λ£Ήλ‹ˆλ‹€.

 

그러면 λ‹€μŒ μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 

더보기

#include <stdio.h>

void main() {
        char str[20]; // λ¬Έμžμ—΄μ€ μ—°μ†λœ μ§‘ν•©! 

        str[0] = 'h';
        str[1] = 'e';
        str[2] = 'l';
        str[3] = 'l';
        str[4] = 'o';
        str[5] = '\0';

        char str1 = 'h';
        char str2 = 'e';
        char str3 = 'l';
        char str4 = 'l';
        char str5 = 'o';
        char str6 = '\0';
        
        printf("%s\n", str);
        printf("%c%c%c%c%c\n", str1, str2, str3, str4, str5);
}

 

문자 λ°°μ—΄ str은 λ©”λͺ¨λ¦¬μ— μˆœμ„œλŒ€λ‘œ μ €μž₯이 λ©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 각각의 λ³€μˆ˜λ‘œ λ¬Έμžμ—΄μ„ 좜λ ₯ν•˜λ©΄ 값은 λ˜‘κ°™μ•„ λ³΄μ΄μ§€λ§Œ λ©”λͺ¨λ¦¬ μƒμ—μ„œλŠ” λ‹€λ₯΄κ²Œ μ €μž₯이 λ˜λŠ” 것을 κΈ°μ–΅ν•˜μ‹œλ©΄ μ’‹μŠ΅λ‹ˆλ‹€. 

 

null λ¬Έμž ('\0'): C μ–Έμ–΄μ—μ„œ λ¬Έμžμ—΄μ€ null λ¬Έμžλ‘œ λλ‚˜μ•Ό ν•©λ‹ˆλ‹€. null λ¬Έμžκ°€ μ—†μœΌλ©΄ λ¬Έμžμ—΄ ν•¨μˆ˜κ°€ μ˜¬λ°”λ₯΄κ²Œ λ™μž‘ν•˜μ§€ μ•Šμ„ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 

C μ–Έμ–΄μ—μ„œλŠ” λ¬Έμžμ—΄μ„ λ‹€λ£° λ•Œ μ£Όμ˜ν•΄μ•Ό ν•  λͺ‡ 가지 μ€‘μš”ν•œ 사항이 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ¬Έμžμ—΄μ˜ 끝에 null λ¬Έμžκ°€ μžˆμ–΄μ•Ό ν•˜λ©°, μΆ©λΆ„ν•œ 곡간을 ν• λ‹Ήν•΄μ•Ό ν•©λ‹ˆλ‹€. λ˜ν•œ, λ¬Έμžμ—΄μ„ μˆ˜μ •ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  λ•Œ 버퍼 μ˜€λ²„ν”Œλ‘œμš°μ™€ 같은 λ³΄μ•ˆ λ¬Έμ œμ— μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

 


 

 

 

C μ–Έμ–΄μ—μ„œ rand() ν•¨μˆ˜λŠ” λ‚œμˆ˜(랜덀 숫자)λ₯Ό μƒμ„±ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” λ‚œμˆ˜ λ°œμƒκΈ°λ₯Ό μ‚¬μš©ν•˜μ—¬ 0 이상 RAND_MAX μ΄ν•˜μ˜ 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€. RAND_MAXλŠ” μ‹œμŠ€ν…œμ— 따라 λ‹€λ₯Ό 수 μžˆμ§€λ§Œ, μ΅œμ†Œ 32767보닀 ν¬κ±°λ‚˜ κ°™μ•„μ•Ό ν•©λ‹ˆλ‹€.

rand() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜κΈ° 전에 stdlib.h, time.h 헀더 νŒŒμΌμ„ 포함해야 ν•©λ‹ˆλ‹€.

더보기

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    // λ‚œμˆ˜ λ°œμƒκΈ°λ₯Ό μ΄ˆκΈ°ν™”ν•˜κΈ° μœ„ν•΄ μ‹œκ°„을 μ‚¬μš©
    srand(time(NULL));

    // 0 μ΄μƒ 32767 μ΄ν•˜μ˜ λ‚œμˆ˜ μƒμ„±
    int random_number = rand();

    printf("Random number: %d\n", random_number);

    return 0;
}

 

이 μ˜ˆμ œμ—μ„œ srand(time(NULL));λŠ” ν˜„μž¬ μ‹œκ°„을 κΈ°λ°˜μœΌλ‘œ ν•œ μ‹œλ“œ(seed) κ°’을 μ„€μ •ν•˜μ—¬ λ‚œμˆ˜ λ°œμƒκΈ°λ₯Ό μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€. μ‹œλ“œ κ°’은 κ°™μ€ μ‹œκ°„에 ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  λ•Œλ§ˆλ‹€ λ‹¬λΌμ Έμ•Ό ν•©λ‹ˆλ‹€. κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ λ§€λ²ˆ κ°™μ€ λ‚œμˆ˜κ°€ μƒμ„±λ  κ²ƒμž…λ‹ˆλ‹€. λ”°λΌμ„œ μ‹œλ“œ κ°’을 λ³€κ²½ν•¨μœΌλ‘œμ¨ λ‹€μ–‘ν•œ λ‚œμˆ˜λ₯Ό μ–»μ„ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.


 

'Programming > C language' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

12 Pointer  (1) 2024.01.24
11 function (ν•¨μˆ˜)  (0) 2024.01.23
9 while & do-while (feat. break & continue)  (1) 2024.01.23
8 for loop (feat. Nested loop)  (1) 2024.01.23
7 if & switch  (2) 2024.01.23

λŒ“κΈ€