Develop/C, C++

[C/C++] ํ•จ์ˆ˜์™€ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋’ค์ง‘์–ด๋ณด์ž!

2023. 10. 12. 21:29
728x90
C/C++

๐Ÿ“œ ๋ฌธ์ œ

๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๊ณ , ํฌ์ธํ„ฐ์™€ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋’ค์ง‘๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์ž!

 

๐Ÿ“ฅ์ž…๋ ฅ

Hi! Welcome!

๐Ÿ“ค์ถœ๋ ฅ

!emocleW !iH

์ž…์ถœ๋ ฅ ๊ฒฐ๊ณผ

๐Ÿ’กํ’€์ด

์šฐ์„  ๋ฐฐ์—ด๋ช… ๊ทธ ์ž์ฒด๋กœ ํฌ์ธํ„ฐ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋‘์ž. ๊ตณ์ด ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•  ํ•„์š”๋„ ์—†์ด ๋ฐฐ์—ด๋ช…์œผ๋กœ ์ธ์ž๋ฅผ ๊ฑด๋„ค์ฃผ๋ฉด ๋œ๋‹ค.
 
๋‹ค์Œ์œผ๋กœ ์•Œ์•„์•ผ ํ•  ํ•จ์ˆ˜๋“ค์€ strlen() ๊ณผ fgets() ํ•จ์ˆ˜์ด๋‹ค.
๋จผ์ € strlen() ํ•จ์ˆ˜๋Š” NULL ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•˜๊ณ  string ๊ธธ์ด๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ฆ‰ ๋ฐ›๋Š” ๋ฌธ์ž์—ด ์นธ 100๊ฐœ์—์„œ ๋ฐ›์€ ๋ฌธ์ž์—ด์ด 39๊ฐœ๋ผ๋ฉด ๋’ค์˜ 61๊ฐœ์˜ NULL ๋ฌธ์ž๋“ค์„ ์ œ์™ธํ•˜๊ณ  ๋”ฑ ๋“ค์–ด์™€ ์žˆ๋Š” ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์„œ 39๋ผ๋Š” ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ์ด๋‹ค. strlen() ์•ž์—๋‹ค๊ฐ€ (int)๋ฅผ ๋ถ™์—ฌ์„œ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋„๋ก ํ•œ๋‹ค.
 
๋‹ค์Œ์œผ๋กœ fgets() ํ•จ์ˆ˜๋Š” ์ฒ˜์Œ C์–ธ์–ด ์ž…๋ฌธํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒ ์ƒ์†Œํ•  ์ˆ˜๋„ ์žˆ๋‹ค. IBM ๋ฌธ์„œ์—์„œ๋Š”  ํ˜„์žฌ stream ์œ„์น˜์—์„œ ์–ด๋А ๊ฒƒ์ด ๋จผ์ € ์˜ค๊ฑด ์ฒซ ๋ฒˆ์งธ ์ค„ ๋ฐ”๊พธ๊ธฐ ๋ฌธ์ž(\n)๊นŒ์ง€, ์ŠคํŠธ๋ฆผ์˜ ๋๊นŒ์ง€ ๋˜๋Š” ์ฝ์€ ๋ฌธ์ž ์ˆ˜๊ฐ€ n-1๊ณผ ๊ฐ™์„ ๋•Œ๊นŒ์ง€ ๋ฌธ์ž๋ฅผ ์ฝ๋Š” ํ•จ์ˆ˜๋ผ๊ณ  ์„ค๋ช…๋˜์–ด ์žˆ๋‹ค. ์ฆ‰, ๋ฌธ์ž๋ฅผ ๋๊นŒ์ง€ ์ฝ์–ด์„œ ๊ฒฐ๊ณผ๋ฅผ string์— ์ €์žฅํ•˜๊ณ  ์ŠคํŠธ๋ง ๋์— ๋„(null) ๋ฌธ์ž(\0)๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋–„ string์€ ์ค„ ๋ฐ”๊พธ๊ธฐ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ๋‹ค(์ฝ์€ ๊ฒฝ์šฐ์—๋งŒ!). ๋”ฐ๋ผ์„œ n์ด 1์ด๋ฉด ์ค„ ๋ฐ”๊พธ๊ธฐ ๋ฌธ์ž๋งŒ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ˆ string์ด ๋น„์–ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” 'fgets(๋ฐ›์„ ๋ฌธ์ž์—ด ๋ณ€์ˆ˜, ๋ฐ›์„ ๋ฌธ์ž์—ด ๋ณ€์ˆ˜์˜ ๊ธธ์ด, ๋ฌธ์ž์—ด์„ ์ฝ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ํŒŒ์ผ ํฌ์ธํ„ฐ)'๋กœ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
 
ํ˜น์‹œ๋‚˜ ๋ชจ๋ฅผ๊นŒ๋ด stream์˜ ์ •์˜์— ๋Œ€ํ•ด ๊ธฐ์ˆ ํ•˜๊ฒ ๋‹ค.
์ŠคํŠธ๋ฆผ ์ •์˜

"์ŠคํŠธ๋ฆผ" (stream)์€ ๋ฐ์ดํ„ฐ์˜ ์—ฐ์†์ ์ธ ํ๋ฆ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์šฉ์–ด์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์€ ์ผ๋ จ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ์ •ํ•œ ์†๋„๋กœ ์—ฐ์†์ ์œผ๋กœ ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ์ „๋‹ฌ๋˜๋Š” ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™ ๋ฐ ์ •๋ณด ๊ธฐ์ˆ  ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ฃผ๋กœ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ํ†ต์‹ ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ŠคํŠธ๋ฆผ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค:
์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ (Input/Output Stream): ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ๊ณผ์ •์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํŒŒ์ผ, ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ, ํ‚ค๋ณด๋“œ ๋˜๋Š” ๋งˆ์šฐ์Šค ์ž…๋ ฅ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์›๋ณธ ๋˜๋Š” ๋Œ€์ƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์€ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ํ‘œํ˜„ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ (Data Stream): ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์€ ์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ์˜ ์—ฐ์†์ ์ธ ํ๋ฆ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์„ผ์„œ ๋ฐ์ดํ„ฐ, ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฏธ๋””์–ด (์˜ˆ: ๋น„๋””์˜ค ๋ฐ ์˜ค๋””์˜ค ์ŠคํŠธ๋ฆผ), ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์€ ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋ฐ์ดํ„ฐ ํŒจํ‚ท์ด๋‚˜ ํ”„๋ ˆ์ž„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ŠคํŠธ๋ฆผ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์ด ๋ฌธ์ œ๋ฅผ ํ’€ ์ค€๋น„๋Š” ๋‹ค ๋˜์—ˆ๋‹ค. ๋ฌธ์ž์—ด๋ฅผ ๋’ค์ง‘๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ temp ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ๊ฑฐ๊ธฐ์— n-k๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•˜๊ณ , n๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ n-k๋ฒˆ์งธ ๋ฌธ์ž์—๋‹ค๊ฐ€ ์ €์žฅํ•œ ๋’ค, n-k๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•ด๋‘” temp ๋ณ€์ˆ˜๋ฅผ n๋ฒˆ์งธ ๋ฌธ์ž์—๋‹ค๊ฐ€ ์ €์žฅํ•ด์ฃผ๋ฉด ๋์ด๋‹ค!

์•„๋ž˜๋Š” ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ด๋‹ค.

#include <stdio.h>
#include <string.h>

void reverseString(char* str) {
    char temp;
    for (int i = 0; i < (int)(strlen(str) / 2); i++) {
        temp = str[(int)strlen(str) - i - 1];
        str[(int)strlen(str) - i - 1] = str[i];
        str[i] = temp;
    }
}

int main() {
  char str[100];

  printf("๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜์‹œ์˜ค.: ");
  fgets(str, sizeof(str), stdin);
  
  reverseString(str);

  printf("๋’ค์ง‘์–ด์ง„ ๋ฌธ์ž์—ด ๊ฒฐ๊ณผ: %s\n", str);
  return 0;
}

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Develop > C, C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[C, C++] ํฌ์ธํ„ฐ(Pointer)  (0) 2023.12.18
[C/C++] ํ•จ์ˆ˜(Function)  (0) 2023.12.18
[C++] ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด์˜ ํ•ฉ๊ณ„์™€ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•ด๋ณด์ž!  (0) 2023.10.10
[C++/1ํŽธ - ์‹ค์ŠตํŽธ] C++ Setting & Variable, Basic Concept  (0) 2023.09.13
[C++/1ํŽธ - ๊ฐœ๋…ํŽธ] C++ Setting & Variable, Basic Concept  (0) 2023.09.12
'Develop/C, C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [C, C++] ํฌ์ธํ„ฐ(Pointer)
  • [C/C++] ํ•จ์ˆ˜(Function)
  • [C++] ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด์˜ ํ•ฉ๊ณ„์™€ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•ด๋ณด์ž!
  • [C++/1ํŽธ - ์‹ค์ŠตํŽธ] C++ Setting & Variable, Basic Concept
JuniTech
JuniTech
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ •๋ณตํ•˜๊ธฐ ์œ„ํ•œ ์ขŒ์ถฉ์šฐ๋Œ ์ฝ”๋ฆฐ์ด์˜ ๊ธฐ๋ก
Juni IT Technologyํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ •๋ณตํ•˜๊ธฐ ์œ„ํ•œ ์ขŒ์ถฉ์šฐ๋Œ ์ฝ”๋ฆฐ์ด์˜ ๊ธฐ๋ก
JuniTech
Juni IT Technology
JuniTech
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (84)
    • Develop (29)
      • C, C++ (13)
      • Python (9)
      • Java (1)
      • JavaScript (0)
      • Arduino Uno (6)
    • CodingTest (38)
      • Baekjoon (36)
    • Project (0)
    • IT Issue (1)
    • Computer Science (11)
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ก  (3)
      • Open Source (3)
      • Data Structure (5)
    • Paper (0)
    • AI (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก
  • ๐Ÿง‘โ€๐Ÿ’ปGithub
  • ๐Ÿ˜ŽJuni์˜ ์žก๋™์‚ฌ๋‹ˆ(์ผ์ƒ ๋ธ”๋กœ๊ทธ)
  • ๐Ÿ’ฐJuni์˜ ํˆฌ์ž์ผ๊ธฐ(์ฃผ์‹ ๋ธ”๋กœ๊ทธ)

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํŒŒ์ด์ฌ
  • 10810
  • Python
  • 10798
  • 25206
  • ๋ฐฑ์ค€
  • pygame
  • ์ƒ์กด์‹œ๊ฐ„
  • 10797
  • 27866
  • 2083๋ฒˆ
  • ๋ฌธ์ž์—ด
  • ๊ตฌ๋ฌธ๋ฒ•
  • LCD
  • 13241
  • ํฌ์ธํ„ฐ
  • 11000
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ์‚ฌ
  • C
  • 10811
  • 10988
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ด๋ก 
  • ์•„๋‘์ด๋…ธ ์šฐ๋…ธ
  • ํ”„์–ด๋ก 
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ด๋ก 
  • 10813
  • Backjoon
  • ํŒŒ์ŠคํŠธ๋ฆฌ
  • c++
  • 10812

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
JuniTech
[C/C++] ํ•จ์ˆ˜์™€ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋’ค์ง‘์–ด๋ณด์ž!
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.