ํด๋์ค ๋ string์ด์ ์ฅ์์ ๊ฐ๋ตํ๊ฒ ์๊ฐ๋์์ต๋๋ค. ๋ฌธ์์ด์ ์ฒ๋ฆฌํ๊ณ ์กฐ์ํ๋ ๋งค์ฐ ๊ฐ๋ ฅํ ํด๋์ค์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์์ด์ ์ค์ ๋ก ์ผ๋ จ์ ๋ฌธ์์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์ ํ ์์์ ์ผ๋ฐ ๋ฐฐ์ด๋ก๋ ๋ํ๋ผ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ค์ ๋ฐฐ์ด:
char foo [20];
๋ฐ๋ผ์ ์ด ๋ฐฐ์ด์ ์ต๋ 20์์ ์ํ์ค๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ฉ๋์ด ์์ ํ ์์ง๋ ํ์๋ ์์ต๋๋ค. ์ด๋ ์ด๋ ๋ ์งง์ ์ํ์ค๋ ์์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋ก๊ทธ๋จ์ ํน์ ์ง์ ์์ ์ํ์ค "Hello"๋๋ ์ํ์ค ์ค ํ๋ "Merry Christmas"๋ฅผ ์ ์ ์ฅํ ์ ์์ต๋๋ค. foo๋ ๋ค 20์ ์ฉ๋์ ์ํ์ค์ ๋ง๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ท์น์ ๋ฐ๋ผ ๋ฌธ์ ์ํ์ค๋ก ํํ๋๋ ๋ฌธ์์ด์ ๋์ ํน์ ๋ฌธ์๋ก ์ ํธ๋ฅผ ๋ณด๋
๋๋ค. null ๋ฌธ์'\0' ๋ ๋ฆฌํฐ๋ด ๊ฐ์ (๋ฐฑ์ฌ๋์, 0) ๋ก ์ธ ์ ์์ต๋๋ค .
์ด ๊ฒฝ์ฐ ์ ํ์ ์์ 20๊ฐ๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด char์foo"Hello"๋ฌธ์ ์ํ์ค๋ฅผ ์ ์ฅํ๊ณ ๋ค์ ๊ณผ "Merry Christmas"๊ฐ์ด ๋ํ๋ผ ์ ์์ต๋๋ค
. ๋ฌธ์์ด ์์ฒด์ ๋ด์ฉ ๋ค์ ์ด๋ป๊ฒ '\0'์ํ์ค์ ๋์ ๋ํ๋ด๊ธฐ ์ํด null ๋ฌธ์( )๊ฐ ์ถ๊ฐ๋์๋์ง ํ์ธํ์ญ์์ค. ํ์ ํจ๋์ char๊ฐ์ด ๊ฒฐ์ ๋์ง ์์ ์์๋ฅผ ๋ํ๋ ๋๋ค.
null๋ก ๋๋๋ ๋ฌธ์ ์ํ์ค์ ์ด๊ธฐํ
๋ฌธ์ ๋ฐฐ์ด์ ์ผ๋ฐ ๋ฐฐ์ด์ด๋ฏ๋ก ์ด์ ๋์ผํ ๊ท์น์ ๋ฐ๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฏธ๋ฆฌ ๊ฒฐ์ ๋ ๋ฌธ์ ์ํ์ค๋ก ๋ฌธ์ ๋ฐฐ์ด์ ์ด๊ธฐํํ๋ ค๋ฉด ๋ค๋ฅธ ๋ฐฐ์ด์ฒ๋ผ ํ ์ ์์ต๋๋ค.
char myword[] = { 'H', 'e', 'l', 'l', 'o', '\0' };
์๋ ๋จ์ด๋ฅผ ๊ตฌ์ฑํ๋ ๋ฌธ์ ์ ๋์ null ๋ฌธ์ ๋ฅผ ์ถ๊ฐํ์ฌ char์ด๊ธฐํ๋ ์ ํ์ 6๊ฐ ์์ ๋ฐฐ์ด์ ์ ์ธํฉ๋๋ค . ๊ทธ๋ฌ๋ ๋ฌธ์ ์์์ ๋ฐฐ์ด์๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด ์ ์ง์ ์ฌ์ฉํ์ฌ ์ด๊ธฐํํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค . ์ด์ ์ฅ์ ์ผ๋ถ ์์์ ์ฌ์ฉ๋ ํํ์์์ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ์ด๋ฏธ ์ฌ๋ฌ ๋ฒ ๋ํ๋ฌ์ต๋๋ค. ํ ์คํธ๋ฅผ ํฐ๋ฐ์ดํ( )๋ก ๋ฌถ์ด ์ง์ ํฉ๋๋ค.
์ด๊ฒ์ ์๋ง๋ ์ด์ ์์ ์์ ์ฌ์ฉ๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด ์
๋๋ค.
ํฐ๋ฐ์ดํ( ")๋ก ๋ฌถ์ธ ๋ฌธ์ ์ํ์ค๋ ๋ฆฌํฐ๋ด ์์ ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ ํ์ ์ฌ์ค null๋ก ๋๋๋ ๋ฌธ์ ๋ฐฐ์ด์
๋๋ค. ์ฆ, ๋ฌธ์์ด ๋ฆฌํฐ๋ด์๋ ํญ์ '\0'๋์ ์๋์ผ๋ก ์ถ๊ฐ๋๋ null ๋ฌธ์( )๊ฐ ์์ต๋๋ค.
๋ฐ๋ผ์ ํธ์ถ๋ char ์์์ ๋ฐฐ์ด์ myword๋ค์ ๋ ๋ฌธ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ null๋ก ๋๋๋ ๋ฌธ์ ์ํ์ค๋ก ์ด๊ธฐํํ ์ ์์ต๋๋ค.
char myword[] = { 'H', 'e', 'l', 'l', 'o', '\0' };
char myword[] = "Hello";
๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฌธ์ ๋ฐฐ์ด์ myword6๊ฐ์ ์์ ํฌ๊ธฐ๋ก ์ ์ธ๋ฉ๋๋ค char. ์ฆ, ๋จ์ด๋ฅผ ๊ตฌ์ฑํ๋ 5๊ฐ ๋ฌธ์ ์ ์ํ์ค์ ๋์ ์ง์ "Hello"ํ๋ ์ต์ข
null ๋ฌธ์( '\0'), ๋ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํฐ๋ฐ์ดํ( ")๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ์ถ๊ฐ๋ฉ๋๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ์ ์ธ๋๋ ์๊ฐ์ ๋ฌธ์ ๋ฐฐ์ด์ ์ด๊ธฐํํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ผ๋ฉฐ ๋์ค์ (์ด๋ฏธ ์ ์ธ๋ ํ์) ๊ฐ์ ํ ๋นํ๋ ๊ฒ์ด ์๋๋๋ค. ์ค์ ๋ก ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ์ผ๋ฐ ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ ์ด์ ๋์ผํ ์ ํ์ด ์์ผ๋ฉฐ ๊ฐ์ ํ ๋นํ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ํํ์(myword๊ฐ ์ด๋ฏธ ์์ ๊ฐ์ด ์ ์ธ๋ ๊ฒฝ์ฐ):
myword = "Bye";
myword[] = "Bye";
๋ค์๊ณผ ๊ฐ์ด ์ ํจ ํ์ง ์์ต๋๋ค .
myword = { 'B', 'y', 'e', '\0' };
๋ฐฐ์ด์ ๊ฐ์ ํ ๋นํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ ์์์ ๊ฐ๋ณ์ ์ผ๋ก ๊ฐ์ ํ ๋นํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ์ ํํฉ๋๋ค.
myword[0] = 'B';
myword[1] = 'y';
myword[2] = 'e';
myword[3] = '\0';
๋ฌธ์์ด ๋ฐ null๋ก ๋๋๋ ๋ฌธ์ ์ํ์ค
null๋ก ๋๋๋ ๋ฌธ์ ์ํ์ค๊ฐ โโ์๋ ์ผ๋ฐ ๋ฐฐ์ด์ C ์ธ์ด์์ ๋ฌธ์์ด์ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ ์ผ๋ฐ์ ์ธ ์ ํ์
๋๋ค(์ด ๋๋ฌธ์ C-๋ฌธ์์ด ์ด๋ผ๊ณ ๋ ํจ ). C++์์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฌธ์์ด(class)์ ๋ํ ํน์ ์ ํ์ ์ ์ํ๋๋ผ๋ string์ฌ์ ํ null๋ก ๋๋๋ ๋ฌธ์ ์ํ์ค(C-๋ฌธ์์ด)๊ฐ ์๋ ์ผ๋ฐ ๋ฐฐ์ด์ ์ธ์ด์์ ๋ฌธ์์ด์ ๋ํ๋ด๋ ์์ฐ์ค๋ฌ์ด ๋ฐฉ๋ฒ์
๋๋ค. ์ฌ์ค, ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ์ฌ์ ํ stringโโ๊ฐ์ฒด๊ฐ ์๋ ํญ์ null๋ก ๋๋๋ ๋ฌธ์ ์ํ์ค๋ฅผ ์์ฑํฉ๋๋ค.
ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ๋ ๋ฌธ์์ด ํํ(C-๋ฌธ์์ด ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์์ด)์ด ๊ณต์กดํ๋ฉฐ ๋ฌธ์์ด์ ํ์๋ก ํ๋ ๋๋ถ๋ถ์ ํจ์๋ ๋ ๋ค ์ง์ํ๋๋ก ์ค๋ฒ๋ก๋๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด cin,coutnull๋ก ๋๋๋ ์ํ์ค๋ฅผ ์ง์ ์ง์ํ์ฌ ๋ฌธ์์ด์ฒ๋ผ ์ง์ ์ถ์ถ cinํ๊ฑฐ๋ ์ฝ์
ํ ์ ์์ต๋๋ค. cout์๋ฅผ ๋ค์ด:
// strings and NTCS:
#include <iostream>
#include <string>
using namespace std;
int main ()
{
char question1[] = "What is your name? ";
string question2 = "Where do you live? ";
char answer1 [80];
string answer2;
cout << question1;
cin >> answer1;
cout << question2;
cin >> answer2;
cout << "Hello, " << answer1;
cout << " from " << answer2 << "!\n";
return 0;
}
๋น์ ์ ์ด๋ฆ์ ๋ฌด์์
๋๊น? ํธ๋จธ
์ด๋ ์ฌ์ธ์? ๊ทธ๋ฆฌ์ค
์๋
ํ์ธ์, ๊ทธ๋ฆฌ์ค์์ ์จ Homer!
์ด ์์์๋ null๋ก ๋๋๋ ์ํ์ค์ ๋ฌธ์์ด์ ์ฌ์ฉํ๋ ๋ ๋ฌธ์ ๋ฐฐ์ด์ด ๋ชจ๋ ์ฌ์ฉ๋ฉ๋๋ค. cin๊ทธ๊ฒ๋ค์ ๋ฐ ์ ํจ๊ป ์ฌ์ฉํ ๋ ์๋นํ ์ํธ ๊ตํ ๊ฐ๋ฅ coutํ์ง๋ง ์ ์ธ์๋ ๋์ ๋๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ๋ฐฐ์ด์ ์ ์ธ๋ ๋ ์์์ ๋๋ ๋ช
์์ ์ผ๋ก ์ง์ ํด์ผ ํ๋ ๊ณ ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ต๋๋ค. question1ํฌ๊ธฐ๋ ์ ํํ 20์(์ข
๋ฃ ๋ ๋ฌธ์ ํฌํจ)์ด๊ณ answer1ํฌ๊ธฐ๋ 80์์
๋๋ค. ๋ฌธ์์ด์ ๋จ์ํ ๋ฌธ์์ด์ด์ง๋ง ํฌ๊ธฐ๋ ์ง์ ๋์ง ์์ต๋๋ค. ์ด๋ ๋ฌธ์์ด์ ๋์ ํฌ๊ธฐ๊ฐ ๋ฐํ์ ์ค์ ๊ฒฐ์ ๋๋ ๋ฐ๋ฉด ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ ์ ์ปดํ์ผ ์ ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
์ด์จ๋ null๋ก ๋๋๋ ๋ฌธ์ ์ํ์ค์ ๋ฌธ์์ด์ ์๋ก ์ฝ๊ฒ ๋ณํ๋ฉ๋๋ค.
๋ ์ข
๋ฃ ๋ฌธ์ ์ํ์ค๋ ์์์ ์ผ๋ก ๋ฌธ์์ด๋ก ๋ณํ๋ ์ ์์ผ๋ฉฐ ๋ฌธ์์ด์ string์ ๋ฉค๋ฒ ํจ์ c_str๋๋ data๋ค์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ข
๋ฃ ๋ฌธ์ ์ํ์ค๋ก ๋ณํ๋ ์ ์์ต๋๋ค.
char myntcs[] = "some text";
string mystring = myntcs; // convert c-string to string
cout << mystring; // printed as a library string
cout << mystring.c_str(); // printed as a c-string
(์ฐธ๊ณ : c_str์ data์ ๋ฉค๋ฒ๋ string๋ชจ๋ ๋์ผํฉ๋๋ค)
'๐ Development Study > ๐จ๐พโ๐ป C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ตฌ์กฐ์ฒด (0) | 2022.08.19 |
---|---|
๋์ ๋ฉ๋ชจ๋ฆฌ (0) | 2022.08.19 |
ํฌ์ธํฐ (0) | 2022.08.19 |
๋ฐฐ์ด (0) | 2022.08.19 |
namespace (0) | 2022.08.18 |
๋๊ธ