๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
C++/C++ ๋ฌธ๋ฒ•

c++ ๋ฌธ์ž์—ด ์ถœ๋ ฅํ•˜๊ธฐ.

by GREEN๋‚˜๋ฌด 2025. 3. 29.
728x90

๐Ÿ“Œ C++ ๋ฌธ์ž์—ด ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•


1. cout์„ ์ด์šฉํ•œ ์ถœ๋ ฅ (๊ถŒ์žฅ)

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello, World!";
    cout << str << endl;
}

โœ… ์žฅ์ 

  • std::string์„ ์ง์ ‘ ์ถœ๋ ฅ ๊ฐ€๋Šฅ → ๋ณ€ํ™˜ ๊ณผ์ • ํ•„์š” ์—†์Œ
  • ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ , C++ ์Šคํƒ€์ผ์— ๋งž๋Š” ๋ฐฉ์‹

2. printf๋ฅผ ์ด์šฉํ•œ ์ถœ๋ ฅ

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello, World!";
    printf("%s\n", str.c_str());  // c_str()์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€ํ™˜
}

โœ… ์ฃผ์˜ํ•  ์ 

  • std::string์„ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ → .c_str()์„ ์‚ฌ์šฉํ•˜์—ฌ const char*๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•จ
  • printf๋Š” C ์Šคํƒ€์ผ์˜ ์ถœ๋ ฅ ํ•จ์ˆ˜๋ผ์„œ C++์—์„œ๋Š” ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ
  • cout๋ณด๋‹ค ํฌ๋งท ์ œ์–ด๊ฐ€ ํŽธ๋ฆฌํ•˜์ง€๋งŒ, ํƒ€์ž… ์•ˆ์ •์„ฑ์ด ๋–จ์–ด์ง

3. puts๋ฅผ ์ด์šฉํ•œ ์ถœ๋ ฅ (C ์Šคํƒ€์ผ)

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello, World!";
    puts(str.c_str());  // c_str()์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€ํ™˜
}

โœ… ํŠน์ง•

  • puts()๋Š” ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๊ณ  ์ž๋™์œผ๋กœ ๊ฐœํ–‰์„ ์ถ”๊ฐ€ํ•จ (\n ๋ถˆํ•„์š”)
  • printf("%s\n", str.c_str());๊ณผ ๋™์ผํ•œ ํšจ๊ณผ

4. ๋ฌธ์ž์—ด ๋ฐ˜๋ณต ์ถœ๋ ฅ (for ๋ฃจํ”„)

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello";

    for (char ch : str) {
        cout << ch << " ";
    }
    cout << endl;
}

โœ… ํŠน์ง•

  • std::string์€ char์˜ ๋ฐฐ์—ด์ด๋ฏ€๋กœ for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•ด ํ•œ ๊ธ€์ž์”ฉ ์ถœ๋ ฅ ๊ฐ€๋Šฅ
  • ๊ฐ ๋ฌธ์ž๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ์šฉ

5. ํŒŒ์ผ๋กœ ์ถœ๋ ฅ (ofstream)

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {
    string str = "Hello, File!";
    ofstream outFile("output.txt");  // ํŒŒ์ผ ์—ด๊ธฐ
    outFile << str << endl;          // ํŒŒ์ผ์— ๋ฌธ์ž์—ด ์ถœ๋ ฅ
    outFile.close();                 // ํŒŒ์ผ ๋‹ซ๊ธฐ
}

โœ… ํŠน์ง•

  • ํŒŒ์ผ์— ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ofstream ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์— ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Œ

6. C ์Šคํƒ€์ผ์˜ char* ๋ฌธ์ž์—ด ์ถœ๋ ฅ

#include <iostream>

using namespace std;

int main() {
    const char* str = "Hello, C-style!";
    cout << str << endl;
}

โœ… ํŠน์ง•

  • std::string์ด ์•„๋‹ˆ๋ผ char* ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉ
  • ํ˜„๋Œ€ C++์—์„œ๋Š” std::string์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋จ

๐Ÿ’ก ์ •๋ฆฌ

๋ฐฉ๋ฒ• ์„ค๋ช… ๋ณ€ํ™˜ ํ•„์š” ์—ฌ๋ถ€ ๊ฐœํ–‰ ์ž๋™ ์ถ”๊ฐ€ ์ถ”์ฒœ ์—ฌ๋ถ€
cout C++ ์Šคํƒ€์ผ ์ถœ๋ ฅ ๋ฐฉ์‹ โŒ โŒ (endl ํ•„์š”) โœ… (๊ฐ€์žฅ ์ถ”์ฒœ)
printf C ์Šคํƒ€์ผ ์ถœ๋ ฅ ๋ฐฉ์‹ โœ… (.c_str()) โŒ (\n ํ•„์š”) โŒ (ํŠน์ • ์ƒํ™ฉ์—์„œ๋งŒ)
puts ๊ฐ„๋‹จํ•œ ๋ฌธ์ž์—ด ์ถœ๋ ฅ โœ… (.c_str()) โœ… โญ• (๊ฐ„๋‹จํ•œ ๊ฒฝ์šฐ)
for ๋ฃจํ”„ ๋ฌธ์ž์—ด ๋ฌธ์ž๋ณ„ ์ถœ๋ ฅ โŒ โŒ โญ• (๋ฌธ์ž ๋‹จ์œ„ ์ฒ˜๋ฆฌ ํ•„์š” ์‹œ)
ofstream ํŒŒ์ผ๋กœ ๋ฌธ์ž์—ด ์ถœ๋ ฅ โŒ โŒ (endl ํ•„์š”) โญ• (ํŒŒ์ผ ์ถœ๋ ฅ ํ•„์š” ์‹œ)
char* C ์Šคํƒ€์ผ ๋ฌธ์ž์—ด ์ถœ๋ ฅ โŒ โŒ (endl ํ•„์š”) โŒ (ํ˜„๋Œ€ C++์—์„œ๋Š” ๋น„์ถ”์ฒœ)

๐Ÿ’ก ์ผ๋ฐ˜์ ์œผ๋กœ std::cout์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹๊ณ , ํŒŒ์ผ ์ถœ๋ ฅ์ด ํ•„์š”ํ•˜๋ฉด ofstream์„ ์‚ฌ์šฉํ•˜๋ฉด ๋จ! ๐Ÿš€


โœ… C++์—์„œ std::string์„ printf๋กœ ์ถœ๋ ฅํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ฐœ์ƒํ•˜๋Š” "std::string"์—์„œ "const char *"๋กœ์˜ ์ ์ ˆํ•œ ๋ณ€ํ™˜ ํ•จ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๐Ÿ” ์›์ธ :

  • printf ํ•จ์ˆ˜๋Š” const char* ํ˜•์‹์˜ ๋ฌธ์ž์—ด์„ ๊ธฐ๋Œ€ํ•˜์ง€๋งŒ, std::string์€ ์ด๋ฅผ ์ž๋™ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š์Œ.
  • ๋”ฐ๋ผ์„œ std::string์„ printf๋กœ ์ง์ ‘ ์ถœ๋ ฅํ•˜๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ๋ฐœ์ƒ.

๐Ÿ›  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

  1. c_str() ์‚ฌ์šฉํ•˜์—ฌ const char*๋กœ ๋ณ€ํ™˜
  2. printf("%s", solution11(3).c_str());
  3. cout์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ (๊ถŒ์žฅ)
    • cout์€ std::string์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋” ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ€๋…์„ฑ์ด ์ข‹์Œ.
  4. cout << solution11(3) << endl;

โœ… ์ตœ์ข… ์ฝ”๋“œ ์ˆ˜์ • ์˜ˆ์‹œ:

#include <iostream>
#include <string>

using namespace std;

string solution11(int num)
{
    return num % 2 ? "Odd" : "Even";
}

int main()
{
    cout << solution11(3) << endl;  // ๊ถŒ์žฅ ๋ฐฉ๋ฒ•
    // printf("%s", solution11(3).c_str());  // printf๋ฅผ ๊ผญ ์จ์•ผ ํ•œ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ
}

 


 

์ฐธ๊ณ 

https://blockdmask.tistory.com/475

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

c++ int๋ฅผ ๋ฌธ์ž๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ  (0) 2025.04.11
for๋ฌธ  (0) 2025.03.29
sort() ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ•  (0) 2025.03.23