๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
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

๋Œ“๊ธ€