728x90
๐ ๋ฌธ์
๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ๊ณ , ํฌ์ธํฐ์ ๋ฌธ์์ด ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ๋ค์ง๋ ํจ์๋ฅผ ๊ตฌํํด๋ณด์!
๐ฅ์ ๋ ฅ
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 |