C Programming Language/C

C์–ธ์–ด ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜

567Rabbit 2024. 7. 11. 20:05

 

๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜

 

 

 

 

 

 

 

EOF(End Of File)

 

 

EOF(End Of File)๋Š” C ์–ธ์–ด์—์„œ ํŒŒ์ผ์˜ ๋์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋งคํฌ๋กœ ์ƒ์ˆ˜์ด๋‹ค.

์ด ๋งคํฌ๋กœ๋Š” <stdio.h> ํ—ค๋” ํŒŒ์ผ์— ์ •์˜๋˜์–ด ์žˆ๋‹ค.

EOF๋Š” ์ฃผ๋กœ ํŒŒ์ผ์˜ ๋์„ ๊ฒ€์‚ฌํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ธ ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ ํŒŒ์ผ์˜ ๋์„ ๋‚˜ํƒ€๋‚ด๋Š” ํŠน๋ณ„ํ•œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

EOF๋Š” ์ •์ˆ˜ ์ƒ์ˆ˜์ด๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ -1๋กœ ์ •์˜๋œ๋‹ค.

ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ fgetc() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด EOF๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ํŒŒ์ผ์—์„œ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

#include <stdio.h>

int main() {
    FILE *fp;
    char c;

    fp = fopen("example.txt", "r");
    if (fp == NULL) {
        perror("Error opening file");
        return -1;
    }

    while ((c = fgetc(fp)) != EOF) {
        putchar(c);  // ํŒŒ์ผ์—์„œ ํ•œ ๋ฌธ์ž์”ฉ ์ถœ๋ ฅ
    }

    fclose(fp);
    return 0;
}

 

์œ„ ์ฝ”๋“œ์—์„œ fgetc(fp)๋Š” ํŒŒ์ผ ํฌ์ธํ„ฐ fp๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ํŒŒ์ผ์—์„œ ํ•œ ๋ฌธ์ž๋ฅผ ์ฝ์–ด์˜ค๊ณ ,

์ด ๋ฌธ์ž๊ฐ€ EOF์™€ ๊ฐ™์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ๊ณ„์† ๋ฐ˜๋ณตํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  EOF์— ๋„๋‹ฌํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์ด ์ข…๋ฃŒ๋œ๋‹ค.

๋”ฐ๋ผ์„œ EOF๋Š” ํŒŒ์ผ ์ฒ˜๋ฆฌ์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ, ํŒŒ์ผ์˜ ๋์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 
 
 
 

 

๋ฌธ์ž์—ด ๋ณต์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ  strcpy()

 

char dst[6];
char src[6] = "Hello";
strcpy(dst, src);  //src๋ฅผ dst๋กœ ๋ณต์‚ฌํ•œ๋‹ค

 

 

strcpy()์™€ strncpy()์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€?

- strncpy()๋Š” ์ตœ๋Œ€ n ๋ฌธ์ž๋งŒ ๋ณต์‚ฌํ•˜๋ฏ€๋กœ ๋” ์•ˆ์ „ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,

  ๋„ ์ข…๋‹จ์ด ๋ณด์žฅ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜๋™์œผ๋กœ ๋„ ์ข…๋‹จ '\0' ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.

 

char src[] = "Hello, world!";
char dest[50];
strcpy(dest, src);

 

 

 

 

๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ  strcat()

 

char dst[12] = "Hello";
char src[6] = "World";
strcat(dst, src); //dst๊ฐ€ "HelloWorld"๊ฐ€ ๋œ๋‹ค

 

 

 

 

 

๋ฌธ์ž์—ด ๋น„๊ต ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ  strcmp()

 

int result = strcmp("dog", "dog")  //๋ฌธ์ž์—ด์ด ๊ฐ™์œผ๋ฉด ๊ฐ™์œผ๋ฉด 0์ด ๋ฐ˜ํ™˜๋œ๋‹ค ์ฃผ์˜!

 

๋ฐ˜ํ™˜๊ฐ’ < 0   : s1์ด s2๋ณด๋‹ค ์•ž์— ์žˆ๋‹ค.  ์Œ์ˆ˜

               0   : s1 == s2

            > 0   : s1์ด s2๋ณด๋‹ค ๋’ค์— ์žˆ๋‹ค.  ์–‘์ˆ˜

 

 

 

 

 

 

๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ  strchr()

 

char *p = strchr("dog","g")

 

๋ฌธ์ž๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌ๋œ ์ฒซ ์œ„์น˜์˜ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

 

 

 

๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ  strstr()

 

char *p = strstr("dog","og")

 

๋ฌธ์ž์—ด s์•ˆ์—์„œ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด sub๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๋งŒ์•ฝ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ทธ ์œ„์น˜์˜ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋งŒ์•ฝ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด NULL๊ฐ’์ด ๋ฐ˜ํ™˜๋œ๋‹ค. 

 

 

 

 

 

๋ฌธ์ž์—ด ํ† ํฐ ๋ถ„๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ  strtok()

 

 

 

 

 

 

์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ sscanf(), sprintf()

 

- ์•ž์— ๋ถ™๋Š” s๋Š” string์„ ์˜๋ฏธํ•œ๋‹ค

 

 

value ๊ฐ’์„ "%d" ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„์„œ, s(๋ฌธ์ž์—ด๋กœ ์ €์žฅํ•œ๋‹ค.)

 

 

 

<์ฐธ๊ณ >

printf("์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋Š” %s์ž…๋‹ˆ๋‹ค\n", b)  -> ์ˆซ์ž์ธ b๋ฅผ %s์— ์ €์žฅํ•ด์„œ, ๋ฌธ์ž์—ด๋กœ ์ €์žฅ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

 

 

 

๋ฌธ์ž์—ด์„ ์ˆ˜์น˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜  atoi(), atof()

 

int atoi( const char *str );  //str์„ int๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
long atoi( const char *str );  //str์„ long๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
double atof( const char *str );  //str์„ double๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.