๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Welcome.
:: C_ ๐Ÿšฉ/๊ธฐ์ดˆ

[C์–ธ์–ด] #07 1.29 -๋ฌธ์ž์—ด, gets(), strlen(), strcpy(), strcat(), strcmp()-

by EunBird 2021. 2. 14.

๋จผ์ €, ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค.

 

์‰ฝ๊ฒŒ ๋งํ•ด,

 

๋ฌธ์ž์—ด = ๋ฌธ์ž๋ฐฐ์—ด + \0(0 byte ๋„๋ฌธ์ž)

 

์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด,

 

char str[] = "apple";

char str2[] = {'a', 'p', 'p', 'l', 'e', '\0'};

char str[] = "apple";

char str2[] = {'a', 'p', 'p', 'l', 'e', '\0'};

 

์ด์ฒ˜๋Ÿผ " " ๋กœ ๋ฌถ์—ฌ ์žˆ์œผ๋ฉด [๋ฌธ์ž์—ด]์ด๋‹ค.

 

๋”ฐ๋ผ์„œ ์œ„์˜ ๊ฒฝ์šฐ๋Š” ํฌ๊ธฐ๋„ 5๊ฐ€ ์•„๋‹Œ 6์ด๋‹ค. (๋„๋ฌธ์ž ํฌํ•จ)

 

** \0๋ฅผ ์•ˆ์“ฐ๋ฉด ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๊ทธ๋ƒฅ ๋ฌธ์ž๋ฐฐ์—ด์ด๋‹ค. **

 

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
void main() {

// [๋ฌธ์ž์—ด]

// ๋ฌธ์ž๋ฐฐ์—ด+'\0'(1byte.๋„๋ฌธ์ž) == ๋ฌธ์ž์—ด

   char str[] = "apple";
   char str2[] = { 'a', 'p', 'p', 'l', 'e', '\0' };  //๋ฌธ์ž์—ด (๋„๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ.)

   char arr[]= { 'a', 'p', 'p', 'l', 'e' }; // ๋ฌธ์ž๋ฐฐ์—ด (๋„๋ฌธ์ž๊ฐ€ ์—†์œผ๋ฏ€๋กœ.)

   char str3[15] = "banana" // 15๊ฐœ๊นŒ์ง€ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ์ฃผ๊ณ  banana๋ฅผ ์ €์žฅ.
    printf("str3 ํฌ๊ธฐ= %d\n", sizeof(str3));

   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");
   // gets(str3);
   scanf("%s",str3);
   // ๋ฐฐ์—ด๋ช…==&๋ฐฐ์—ด[0]   //๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์— ์ €์žฅํ•  ๋•Œ๋Š” &์„ ์“ฐ์ง€์•Š๊ณ  ํ‘œํ˜„๊ฐ€๋Šฅํ•˜๋‹ค.


   printf("str3: %s\n", str3);


}

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
void main() {

// [๋ฌธ์ž์—ด]

// ๋ฌธ์ž๋ฐฐ์—ด+'\0'(1byte.๋„๋ฌธ์ž) == ๋ฌธ์ž์—ด

   char str[] = "apple";
   char str2[] = { 'a', 'p', 'p', 'l', 'e', '\0' };  //๋ฌธ์ž์—ด (๋„๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ.)

   char arr[]= { 'a', 'p', 'p', 'l', 'e' }; // ๋ฌธ์ž๋ฐฐ์—ด (๋„๋ฌธ์ž๊ฐ€ ์—†์œผ๋ฏ€๋กœ.)

   char str3[15] = "banana";  // 15๊ฐœ๊นŒ์ง€ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ์ฃผ๊ณ  banana๋ฅผ ์ €์žฅ.
    printf("str3 ํฌ๊ธฐ= %d\n", sizeof(str3));

   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");
   // gets(str3);
   scanf("%s",str3);
   // ๋ฐฐ์—ด๋ช…==&๋ฐฐ์—ด[0]   //๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์— ์ €์žฅํ•  ๋•Œ๋Š” &์„ ์“ฐ์ง€์•Š๊ณ  ํ‘œํ˜„๊ฐ€๋Šฅํ•˜๋‹ค.


   printf("str3: %s\n", str3);


}


*์ฃผ์˜*

char str[5] = "apple";  

 

์œ„ ๋ฌธ์žฅ์€ ์˜ค๋ฅ˜์ด๋‹ค. ์™œ์ผ๊นŒ?

 

"apple" ์€ ๋„๋ฌธ์ž๊นŒ์ง€ 6๊ฐœ์˜ ๊ณต๊ฐ„์ด ํ•„์š”ํ•œ๋ฐ

 

์ธ๋ฑ์Šค๊ฐ€ 5๋ผ์„œ ๊ณต๊ฐ„์ด 5๊ฐœ๋ผ 1๊ฐœ์˜ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


๋˜ํ•œ, gets() ๋ผ๋Š”  ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜•์‹์ง€์ •์ž๋ฅผ ๋”ฐ๋กœ ์ž…๋ ฅํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. 

 

kiwi pie ์™€ ๊ฐ™์ด ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๋‹จ์–ด๋„ spaceํ‚ค์™€ enterํ‚ค๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ๋ฐ›์•„์ค€๋‹ค.

 

๋‹จ, gets() ํ•จ์ˆ˜๋Š” c++์ด ์•„๋‹Œ c์–ธ์–ด์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ๋ช…์„ ~.c  ๋กœ ๋ฐ”๊พธ์–ด์ค˜์•ผํ•œ๋‹ค.


'A'             vs           "A" 

1byte                        2byte (๋’ค์— ๋„๋ฌธ์ž๊ฐ€ ์žˆ๋‹ค.)

char                         char๋ฐฐ์—ด


์•„๋ž˜์˜ ์‹œ์Šคํ…œ์„ ํ™•์ธํ•ด๋ณด์ž.

 

 

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[10];  //๋ฌธ์ž10๊ฐœ ์ž…๋ ฅ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด ๊ณต๊ฐ„ ์ƒ์„ฑ.
   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");
   scanf("%s", str);  //์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์„ str์— ์ €์žฅ.

   printf("์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์€ %s์ž…๋‹ˆ๋‹ค.\n", str);

    // 1) ๋ฌธ์ž์—ด [๊ธธ์ด]๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
    //  => ์‹ค์งˆ์ ์œผ๋กœ ๋ฌธ์ž๋“ค์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์˜ ํฌ๊ธฐ
    //  => ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„์˜ ํฌ๊ธฐ
    //  ('\0'๋Š” ํฌํ•จํ•˜์ง€์•Š๋Š”๋‹ค!)

   printf("๋ฌธ์ž์—ด ๊ธธ์ด๋Š” %d์ž…๋‹ˆ๋‹ค.\n", strlen(str));

   printf("\n\n");

   char c;
   printf("๋ฌธ์ž1๊ฐœ์ž…๋ ฅ: ");
   scanf(" %c", &c);  //์ž…๋ ฅํ•œ ๋ฌธ์ž๋ฅผ c์— ์ €์žฅ.
   int cnt = 0; 
   for (int i = 0; i < strlen(str); i++) {
                 if (str[i] == c) {  //์กฐ๊ฑด๋ฌธ: str[i] ์™€ c๊ฐ€ ๊ฐ™์€๊ฐ€?
                                      cnt++;
                  }
   }
   printf("%s์— %c๋Š” %d๊ฐœ์žˆ์Šต๋‹ˆ๋‹ค!\n",str,c, cnt);

}

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[10];  //๋ฌธ์ž10๊ฐœ ์ž…๋ ฅ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด ๊ณต๊ฐ„ ์ƒ์„ฑ.
   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");
   scanf("%s", str);  //์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์„ str์— ์ €์žฅ.

   printf("์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์€ %s์ž…๋‹ˆ๋‹ค.\n", str);

    // 1) ๋ฌธ์ž์—ด [๊ธธ์ด]๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
    //  => ์‹ค์งˆ์ ์œผ๋กœ ๋ฌธ์ž๋“ค์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์˜ ํฌ๊ธฐ
    //  => ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„์˜ ํฌ๊ธฐ
    //  ('\0'๋Š” ํฌํ•จํ•˜์ง€์•Š๋Š”๋‹ค!)

   printf("๋ฌธ์ž์—ด ๊ธธ์ด๋Š” %d์ž…๋‹ˆ๋‹ค.\n", strlen(str));

   printf("\n\n");

   char c;
   printf("๋ฌธ์ž1๊ฐœ์ž…๋ ฅ: ");
   scanf(" %c", &c);  //์ž…๋ ฅํ•œ ๋ฌธ์ž๋ฅผ c์— ์ €์žฅ.
   int cnt = 0; 
   for (int i = 0; i < strlen(str); i++) {
                 if (str[i] == c) {  //์กฐ๊ฑด๋ฌธ: str[i] ์™€ c๊ฐ€ ๊ฐ™์€๊ฐ€?
                                      cnt++;
                  }
   }
   printf("%s์— %c๋Š” %d๊ฐœ์žˆ์Šต๋‹ˆ๋‹ค!\n",str,c, cnt);

}


ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[15];   //๋ฌธ์ž 15๊ฐœ ์ž…๋ ฅ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์ƒ์„ฑ.
   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");   
   scanf("%s", str);     //์ž…๋ ฅํ•œ ๋ฌธ์ž๋ฅผ str์— ์ €์žฅ.

   for (char c = 'a'; c <= 'z'; c++) {    // ๋ฌธ์ž๊ณต๊ฐ„ c์˜ ์ €์žฅ๋œ ๊ฐ’์ด a~z๋ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต.
        int cnt = 0;   // cnt์— 0 ์ €์žฅ.
        for (int i = 0; i < strlen(str); i++) {  // ์กฐ๊ฑด: i ๊ฐ€ strlen(str) ๋ณด๋‹ค ์ž‘์€๊ฐ€?
              if (c == str[i]) {  // ์กฐ๊ฑด๋ฌธ: c์— ์ €์žฅ๋œ ๋ฌธ์ž์™€ str๋ฌธ์ž์—ด์˜ i๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์ €์žฅ๋œ ๊ฐ’์ด ๊ฐ™์€๊ฐ€?
                 cnt++;    //  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด cnt์— 1์ถ”๊ฐ€.
              }
         }

         if (cnt == 0) {  // ์กฐ๊ฑด๋ฌธ: cnt๊ฐ€ 0์ธ๊ฐ€?
            continue // ์ฆ‰์‹œ ์ด ๋ฐ˜๋ณต๋ฌธ์˜ ์‹œ์ž‘์œผ๋กœ ์ด๋™.
         }

    printf("%c: %d\n", c, cnt);   // cnt๊ฐ€ 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋งŒ ์ด printf๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.
    }  //---> ๋งจ ์ฒซ for๋ฌธ {}๋ธ”๋ก๊ตฌ๊ฐ„ ๋๋ถ€๋ถ„.
}  

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[15];   //๋ฌธ์ž 15๊ฐœ ์ž…๋ ฅ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์ƒ์„ฑ.
   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");   
   scanf("%s", str);     //์ž…๋ ฅํ•œ ๋ฌธ์ž๋ฅผ str์— ์ €์žฅ.

   for (char c = 'a'; c <= 'z'; c++) {    // ๋ฌธ์ž๊ณต๊ฐ„ c์˜ ์ €์žฅ๋œ ๊ฐ’์ด a~z๋ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต.
        int cnt = 0;   // cnt์— 0 ์ €์žฅ.
        for (int i = 0; i < strlen(str); i++) {  // ์กฐ๊ฑด: i ๊ฐ€ strlen(str) ๋ณด๋‹ค ์ž‘์€๊ฐ€?
              if (c == str[i]) {  // ์กฐ๊ฑด๋ฌธ: c์— ์ €์žฅ๋œ ๋ฌธ์ž์™€ str๋ฌธ์ž์—ด์˜ i๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์ €์žฅ๋œ ๊ฐ’์ด ๊ฐ™์€๊ฐ€?
                 cnt++;    //  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด cnt์— 1์ถ”๊ฐ€.
              }
         }

         if (cnt == 0) {  // ์กฐ๊ฑด๋ฌธ: cnt๊ฐ€ 0์ธ๊ฐ€?
            continue;  // ์ฆ‰์‹œ ์ด ๋ฐ˜๋ณต๋ฌธ์˜ ์‹œ์ž‘์œผ๋กœ ์ด๋™.
         }

    printf("%c: %d\n", c, cnt);   // cnt๊ฐ€ 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋งŒ ์ด printf๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.
    }  //---> ๋งจ ์ฒซ for๋ฌธ {}๋ธ”๋ก๊ตฌ๊ฐ„ ๋๋ถ€๋ถ„.
}  

banana ์ž…๋ ฅ ๊ฒฝ์šฐ.

banana ์ž…๋ ฅ ๊ฒฝ์šฐ์˜ ๋””๋ฒ„๊น… ํ‘œ



 'A'~'Z' :  65~90
 'a'~'z' :  97~122

 

๋Œ€๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž, ์†Œ๋ฌธ์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค์–ด๋ณด์ž.

๊ฐ ๋ฌธ์ž์˜ ์•„์Šคํ‚ค ์ฝ”๋“œ๋Š” ์œ„์™€ ๊ฐ™๋‹ค.

 

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[15];    // ๋ฌธ์ž15๊ฐœ ์ž…๋ ฅ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด ๊ณต๊ฐ„์ƒ์„ฑ.
   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");     
   scanf("%s", str);     //์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์„ str์— ์ €์žฅ.

   for (int i = 0; i < strlen(str); i++) {    // ์กฐ๊ฑด: i๊ฐ€ strlen(str) ๋ณด๋‹ค ์ž‘์€๊ฐ€?
        if ('A' <= str[i] && str[i] <= 'Z') {     // str[i]์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ€ 'A'์™€ 'Z'์˜ ์•„์Šคํ‚ค ์ฝ”๋“œ ์‚ฌ์ด์ธ ์ˆซ์ž์ธ๊ฐ€?  
           str[i] += 32;   // 32๋ฅผ ๋”ํ•˜์—ฌ ์†Œ๋ฌธ์ž ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
        }
        else {
               str[i] -= 32;   // 32๋ฅผ ๋นผ์„œ ๋Œ€๋ฌธ์ž ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
        }
   }
printf("๋ฐ”๋€ ๋ฌธ์ž์—ด: %s\n", str); 
}

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[15];    // ๋ฌธ์ž15๊ฐœ ์ž…๋ ฅ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด ๊ณต๊ฐ„์ƒ์„ฑ.
   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");     
   scanf("%s", str);     //์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์„ str์— ์ €์žฅ.

   for (int i = 0; i < strlen(str); i++) {    // ์กฐ๊ฑด: i๊ฐ€ strlen(str) ๋ณด๋‹ค ์ž‘์€๊ฐ€?
        if ('A' <= str[i] && str[i] <= 'Z') {     // str[i]์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ€ 'A'์™€ 'Z'์˜ ์•„์Šคํ‚ค ์ฝ”๋“œ ์‚ฌ์ด์ธ ์ˆซ์ž์ธ๊ฐ€?  
           str[i] += 32;   // 32๋ฅผ ๋”ํ•˜์—ฌ ์†Œ๋ฌธ์ž ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
        }
        else {
               str[i] -= 32;   // 32๋ฅผ ๋นผ์„œ ๋Œ€๋ฌธ์ž ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
        }
   }
printf("๋ฐ”๋€ ๋ฌธ์ž์—ด: %s\n", str); 
}


strlen()ํ•จ์ˆ˜๋Š” <string.h> ์— ์กด์žฌํ•œ๋‹ค.  **

 

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

์—ฌ๊ธฐ์„œ size of() , ์ €์žฅ๋œ ํฌ๊ธฐ, strlen() ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค.

 

์ด ์ฐจ์ด์ธ ๊ฒƒ์ด๋‹ค.


ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[15];
   // str = "apple";  -> ๋ถˆ๊ฐ€๋Šฅ.
   strcpy(str, "apple");   // str๋ฌธ์ž์—ด ๊ณต๊ฐ„์— apple์„ ์ €์žฅ.

   printf("str: %s\n", str);


   strcat(str, "๋‹˜");    // str๋ฌธ์ž์—ด์˜ ๋งจ ๋’ค์— "๋‹˜"์„ ์ €์žฅ. (\0๋ณด๋‹ค๋Š” ์•ž)
   printf("str: %s\n", str);
}

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[15];
   // str = "apple";  -> ๋ถˆ๊ฐ€๋Šฅ.
   strcpy(str, "apple");   // str๋ฌธ์ž์—ด ๊ณต๊ฐ„์— apple์„ ์ €์žฅ.

   printf("str: %s\n", str);


   strcat(str, "๋‹˜");    // str๋ฌธ์ž์—ด์˜ ๋งจ ๋’ค์— "๋‹˜"์„ ์ €์žฅ. (\0๋ณด๋‹ค๋Š” ์•ž)
   printf("str: %s\n", str);
}

strcpy()   ,   strcat()


ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

// ๋ฌธ์ž์—ด ๋น„๊ตํ•จ์ˆ˜ ->   == ๋“ฑ์˜ ๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜์—†์Œ!

   char str1[] = "apple";
   char str2[] = "banana";
   char str3[] = "apple";

   printf("str1 vs str2 = %d\n", strcmp(str1, str2));
   // ์™ผ์ชฝ์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ’์ด ๋” ์ž‘์œผ๋ฉด -1

   printf("str1 vs str3 = %d\n", strcmp(str1, str3));
   // ๋™์ผ 0

   printf("str2 vs str1 = %d\n", strcmp(str2, str1));
   // ์˜ค๋ฅธ์ชฝ์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ’์ด ๋” ์ž‘์œผ๋ฉด 1
}

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

// ๋ฌธ์ž์—ด ๋น„๊ตํ•จ์ˆ˜ ->   == ๋“ฑ์˜ ๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜์—†์Œ!

   char str1[] = "apple";
   char str2[] = "banana";
   char str3[] = "apple";

   printf("str1 vs str2 = %d\n", strcmp(str1, str2));
   // ์™ผ์ชฝ์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ’์ด ๋” ์ž‘์œผ๋ฉด -1

   printf("str1 vs str3 = %d\n", strcmp(str1, str3));
   // ๋™์ผ 0

   printf("str2 vs str1 = %d\n", strcmp(str2, str1));
   // ์˜ค๋ฅธ์ชฝ์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ’์ด ๋” ์ž‘์œผ๋ฉด 1
}

strcmp()


ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char id[10];
   char pw[10];

   printf("id์ž…๋ ฅ: ");
   scanf("%s", id);
   printf("pw์ž…๋ ฅ: ");
   scanf("%s", pw);


   if (strcmp(id, "kim") != 0) {  // ์กฐ๊ฑด๋ฌธ: id์™€ "kim"๊ณผ์˜ strcmp๊ฐ’์ด 0์ด ์•„๋‹Œ๊ฐ€?
      printf("ํ•ด๋‹น์•„์ด๋””๋Š” ์—†์Šต๋‹ˆ๋‹ค!\n");
   }
   else if (strcmp(pw, "1234") != 0) {   // ์กฐ๊ฑด๋ฌธ: pw์™€ "1234"์™€์˜ strcmp๊ฐ’์ด 0์ด ์•„๋‹Œ๊ฐ€?
            printf("๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•ด๋ณด์„ธ์š”!\n");
   }
   else {  // ๊ทธ๋ฐ–์˜ ๊ฒฝ์šฐ.
         printf("๋กœ๊ทธ์ธ์„ฑ๊ณต!\n");
         printf("ID: %s\n", id);
         for (int i = 0; i < strlen(pw); i++) {   //pw๋ฅผ * ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ์œ„ํ•œ ๋ฐ˜๋ณต๋ฌธ.
              pw[i] = '*';
         }
   printf("pw: %s\n", pw);
   }
}

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char id[10];
   char pw[10];

   printf("id์ž…๋ ฅ: ");
   scanf("%s", id);
   printf("pw์ž…๋ ฅ: ");
   scanf("%s", pw);


   if (strcmp(id, "kim") != 0) {  // ์กฐ๊ฑด๋ฌธ: id์™€ "kim"๊ณผ์˜ strcmp๊ฐ’์ด 0์ด ์•„๋‹Œ๊ฐ€?
      printf("ํ•ด๋‹น์•„์ด๋””๋Š” ์—†์Šต๋‹ˆ๋‹ค!\n");
   }
   else if (strcmp(pw, "1234") != 0) {   // ์กฐ๊ฑด๋ฌธ: pw์™€ "1234"์™€์˜ strcmp๊ฐ’์ด 0์ด ์•„๋‹Œ๊ฐ€?
            printf("๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•ด๋ณด์„ธ์š”!\n");
   }
   else {  // ๊ทธ๋ฐ–์˜ ๊ฒฝ์šฐ.
         printf("๋กœ๊ทธ์ธ์„ฑ๊ณต!\n");
         printf("ID: %s\n", id);
         for (int i = 0; i < strlen(pw); i++) {   //pw๋ฅผ * ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ์œ„ํ•œ ๋ฐ˜๋ณต๋ฌธ.
              pw[i] = '*';
         }
   printf("pw: %s\n", pw);
   }
}

kim , 4321 ์ž…๋ ฅ.

qwee , 3123 ์ž…๋ ฅ.

kim , 1234 ์ž…๋ ฅ.


ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[10];
   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");
   scanf("%s", str);

   int num;
   printf("์นธ์ž…๋ ฅ: ");
   scanf("%d", &num);

   for (int i = 0; i < strlen(str); i++) {  
        str[i] += num;    // str[i]์— num ๋งŒํผ ๋”ํ•˜๊ณ  ์ €์žฅ.
        if (str[i] > 'z') {      // str[i]์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ€ 'z'์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ.
           str[i] -= 26;     // str[i]์—์„œ 26์„ ๋นผ๊ณ  ์ €์žฅ.
        }
   }

printf("์ด๋™ ํ›„์˜ ๋ฌธ์ž์—ด์€ %s์ž…๋‹ˆ๋‹ค.\n", str);
}

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char str[10];
   printf("๋ฌธ์ž์—ด์ž…๋ ฅ: ");
   scanf("%s", str);

   int num;
   printf("์นธ์ž…๋ ฅ: ");
   scanf("%d", &num);

   for (int i = 0; i < strlen(str); i++) {  
        str[i] += num;    // str[i]์— num ๋งŒํผ ๋”ํ•˜๊ณ  ์ €์žฅ.
        if (str[i] > 'z') {      // str[i]์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ€ 'z'์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ.
           str[i] -= 26;     // str[i]์—์„œ 26์„ ๋นผ๊ณ  ์ €์žฅ.
        }
   }

printf("์ด๋™ ํ›„์˜ ๋ฌธ์ž์—ด์€ %s์ž…๋‹ˆ๋‹ค.\n", str);
}


ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char word[10];
   printf("์˜๋‹จ์–ด: ");    // ๋‹จ์–ด ์ž…๋ ฅํ›„ word์— ์ €์žฅ.
   scanf("%s", word);

   char ans[10];          //10๊ฐœ์˜ ๋ฌธ์ž ์ž…๋ ฅ ๊ฐ€๋Šฅํ•œ ans๋ฌธ์ž์—ด ๊ณต๊ฐ„ ์ƒ์„ฑ.
   strcpy(ans, word);         // banana   // ans์— word์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ณต์‚ฌ.
   for (int i = 0; i < strlen(ans); i++) {        //ans์˜ ๋ฌธ์ž๊ธธ์ด ๋งŒํผ ๋ฐ˜๋ณต.
        ans[i] = '_';            // ______    //ans[i]๋ฅผ '_' ๋กœ ๊ต์ฒด. ์ฆ‰, ans๊ฐ€ ______ 
   }
           //ans[strlen(word)] = '\0';

   int life = 3;
   while (1) {                // ๋ฌดํ•œ๋ฃจํ”„ ์ƒ์„ฑ.
           char c;
           printf("%s: ",ans);    // _______์ถœ๋ ฅ.
           scanf(" %c", &c);      //์ž…๋ ฅํ•œ ๊ฐ’์„ c์— ์ €์žฅ.
           int check = 1;         //์ฒดํฌ์šฉ ๋ณ€์ˆ˜ check์— 1์ €์žฅ.
           for (int i = 0; i < strlen(word); i++) {     //word์— ์ €์žฅ๋œ ๋ฌธ์ž์—ด๊ธธ์ด ๋งŒํผ ๋ฐ˜๋ณต.
                 if (c == word[i]) {            // ์กฐ๊ฑด๋ฌธ: c์— ์ €์žฅ๋œ ๋ฌธ์ž์™€ word[i]๊ฐ€ ๊ฐ™์€๊ฐ€?
                    ans[i]=c;                // ๊ฐ™์œผ๋ฉด ______ ์ค‘์—์„œ ๊ฐ™์€ ์ธ๋ฑ์Šค ๋ถ€๋ถ„์„ ์ž…๋ ฅํ•œ c์— ์ €์žฅ๋œ ๋ฌธ์ž๋กœ ๊ต์ฒด.
                    check = 0;              // ์ฒดํฌ์šฉ ๋ณ€์ˆ˜์— 0์ €์žฅ.
                 }
           }
           if (check) {    // ์ฒดํฌ์šฉ ๋ณ€์ˆ˜๊ฐ€ 1์ด๋ฉด ์ˆ˜ํ–‰, 0์ด๋ฉด ๊ฑด๋„ˆ๋œ€.
              printf("%c๋Š”(์€) ์—†๋Š” ๋ฌธ์ž์ž…๋‹ˆ๋‹ค!\n", c);
              life--;    //์ƒ๋ช…๊ฐ’์ธ life์—์„œ 1 ์‚ญ๊ฐ.   //life๋„ printf๋ฅผ ํ†ตํ•ด ๋ช‡๊ฐœ ๋‚จ์•˜๋Š”์ง€ ์•Œ๋ ค์ค˜๋„ ์ข‹๋‹ค.
           }
           if (strcmp(ans,word)==0) {    // ์กฐ๊ฑด๋ฌธ: ans์™€ word์˜ strcmp๊ฐ’์ด 0๊ณผ ๊ฐ™์€๊ฐ€?
              printf("%s! ์ •๋‹ต์ž…๋‹ˆ๋‹ค!!\n", ans);
              break;   // ์ฆ‰์‹œ ์ด ๋ฐ˜๋ณต๋ฌธ ํƒˆ์ถœ.
           }
           else if (life == 0) {    // ์ƒ๋ช…๊ฐ’์ธ life๊ฐ’์ด 0์ด ๋œ ๊ฒฝ์šฐ ์ˆ˜ํ–‰.
                    printf("GameOver...์ •๋‹ต์€ %s์ด์—ˆ์Šต๋‹ˆ๋‹ค...\n", word);
                    break//์ฆ‰์‹œ ์ด ๋ฐ˜๋ณต๋ฌธ ํƒˆ์ถœ.
           }
   }

}

ใ…กใ…กใ…กใ…กใ…ก

#include<stdio.h>
#include<string.h>
void main() {

   char word[10];
   printf("์˜๋‹จ์–ด: ");    // ๋‹จ์–ด ์ž…๋ ฅํ›„ word์— ์ €์žฅ.
   scanf("%s", word);

   char ans[10];          //10๊ฐœ์˜ ๋ฌธ์ž ์ž…๋ ฅ ๊ฐ€๋Šฅํ•œ ans๋ฌธ์ž์—ด ๊ณต๊ฐ„ ์ƒ์„ฑ.
   strcpy(ans, word);         // banana   // ans์— word์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ณต์‚ฌ.
   for (int i = 0; i < strlen(ans); i++) {        //ans์˜ ๋ฌธ์ž๊ธธ์ด ๋งŒํผ ๋ฐ˜๋ณต.
        ans[i] = '_';            // ______    //ans[i]๋ฅผ '_' ๋กœ ๊ต์ฒด. ์ฆ‰, ans๊ฐ€ ______ 
   }
           //ans[strlen(word)] = '\0';

   int life = 3;
   while (1) {                // ๋ฌดํ•œ๋ฃจํ”„ ์ƒ์„ฑ.
           char c;
           printf("%s: ",ans);    // _______์ถœ๋ ฅ.
           scanf(" %c", &c);      //์ž…๋ ฅํ•œ ๊ฐ’์„ c์— ์ €์žฅ.
           int check = 1;         //์ฒดํฌ์šฉ ๋ณ€์ˆ˜ check์— 1์ €์žฅ.
           for (int i = 0; i < strlen(word); i++) {     //word์— ์ €์žฅ๋œ ๋ฌธ์ž์—ด๊ธธ์ด ๋งŒํผ ๋ฐ˜๋ณต.
                 if (c == word[i]) {            // ์กฐ๊ฑด๋ฌธ: c์— ์ €์žฅ๋œ ๋ฌธ์ž์™€ word[i]๊ฐ€ ๊ฐ™์€๊ฐ€?
                    ans[i]=c;                // ๊ฐ™์œผ๋ฉด ______ ์ค‘์—์„œ ๊ฐ™์€ ์ธ๋ฑ์Šค ๋ถ€๋ถ„์„ ์ž…๋ ฅํ•œ c์— ์ €์žฅ๋œ ๋ฌธ์ž๋กœ ๊ต์ฒด.
                    check = 0;              // ์ฒดํฌ์šฉ ๋ณ€์ˆ˜์— 0์ €์žฅ.
                 }
           }
           if (check) {    // ์ฒดํฌ์šฉ ๋ณ€์ˆ˜๊ฐ€ 1์ด๋ฉด ์ˆ˜ํ–‰, 0์ด๋ฉด ๊ฑด๋„ˆ๋œ€.
              printf("%c๋Š”(์€) ์—†๋Š” ๋ฌธ์ž์ž…๋‹ˆ๋‹ค!\n", c);
              life--;    //์ƒ๋ช…๊ฐ’์ธ life์—์„œ 1 ์‚ญ๊ฐ.   //life๋„ printf๋ฅผ ํ†ตํ•ด ๋ช‡๊ฐœ ๋‚จ์•˜๋Š”์ง€ ์•Œ๋ ค์ค˜๋„ ์ข‹๋‹ค.
           }
           if (strcmp(ans,word)==0) {    // ์กฐ๊ฑด๋ฌธ: ans์™€ word์˜ strcmp๊ฐ’์ด 0๊ณผ ๊ฐ™์€๊ฐ€?
              printf("%s! ์ •๋‹ต์ž…๋‹ˆ๋‹ค!!\n", ans);
              break;   // ์ฆ‰์‹œ ์ด ๋ฐ˜๋ณต๋ฌธ ํƒˆ์ถœ.
           }
           else if (life == 0) {    // ์ƒ๋ช…๊ฐ’์ธ life๊ฐ’์ด 0์ด ๋œ ๊ฒฝ์šฐ ์ˆ˜ํ–‰.
                    printf("GameOver...์ •๋‹ต์€ %s์ด์—ˆ์Šต๋‹ˆ๋‹ค...\n", word);
                    break; //์ฆ‰์‹œ ์ด ๋ฐ˜๋ณต๋ฌธ ํƒˆ์ถœ.
           }
   }

}


๋—.

 

 

 

728x90

๋Œ“๊ธ€