string mystr = "Hello Guys!";
const char *c_mystr = mystr.c_str();
cout << c_mystr << endl; // Hello Guys!
cout << mystr << endl; // Hello Guys!
c_str()ํจ์๋ string class์ ๋ฉค๋ฒ ํจ์์ ๋๋ค.
c_str() ํจ์๋ c++ style string์ c style string์ผ๋ก ๋ณ๊ฒฝํ์ฌ ์ฒซ๋ฒ์งธ ๋ฌธ์(char)์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๋ฐํํฉ๋๋ค.
str.c_str() ์ ์ฌ์ฉํ๋ฉด
ํด๋น ๋ฌธ์์ด์ ์ฒซ๋ฒ์งธ char์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ returnํด์ค๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ๊ฑด c style string์ ๋ฌธ์์ ๋ฐฐ์ด์ด๋ผ๋ ์ ์ ๋๋ค.
์์๋ค์ํผ ๋ฐฐ์ด์ ํน์ง์ ๋ฐฐ์ด์ ์ด๋ฆ์ด ํด๋น ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ๋ํ๋ด๋ ๊ฒ ์ ๋๋ค.
์ฆ, c style string์์
์ฒซ๋ฒ์งธ char์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ ํธ์ถ = ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์ ํธ์ถ = ๋ฐฐ์ด ํธ์ถ = ๋ฌธ์์ด ์ ์ฒด ํธ์ถ
์ธ ๊ฒ ์ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ 'c style๋ก ๋ณํ๋ ๋ฌธ์์ด์ ๋ฐํํ๋ค' ๊ณ ๋ณด์๋ ๋๋ ๊ฒ ์ ๋๋ค.
์ฌ์ค ๋ฆฌํดํ๋๊ฒ์ ํฌ์ธํฐ์ด์ง ๊ทธ ๋ฌธ์์ด ์์ฒด๋ ์๋์ง๋ง, ์ฌ์ค์ ๋์ผํ ๊ฒ์ด๋ผ๊ณ ๋ ๋ณผ ์ ์๋๊ฒ์ด์ฃ .
๋๋ค๋ฅธ ํ๊ฐ์ง ํน์ง์ c_str()์ผ๋ก ๋ฐํ๋ ํฌ์ธํฐ๋ ์์์ ๋ํ ํฌ์ธํฐ(pointers to constants) ์ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ดํ์ ๊ทธ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค๋ ์ ์ ์ธ์งํด์ผ ํฉ๋๋ค.
์์์ ๊ด๋ จ๋ ํฌ์ธํฐ์ ๊ฐ๋ ์ ๋ค์ ํฌ์คํธ์ ์ ๋ฆฌ๋์ด์์ต๋๋ค.
'C++ > ํจ์ (Function)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] sort ํจ์ | ๋ฐฐ์ด/๋ฒกํฐ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ (0) | 2024.01.09 |
---|---|
[C++] transform (0) | 2024.01.05 |
[C++] ํจ์์์ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๊ธฐ (Returning a Pointer from a Function) (1) | 2023.12.22 |
[C++] ์ฌ๊ท ํจ์ (Recursive Function) (0) | 2023.12.18 |
[C++] ์ฐธ์กฐ๋ก ์ ๋ฌํ๊ธฐ (Pass by Reference) (1) | 2023.12.17 |