๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ C++ programming/Practice & Tips

[Practice & Tips] Practice 2 : cstring๊ณผ string ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜

by A Lim Han 2022. 3. 29.

# <cstring> ์ฃผ์š” ํ•จ์ˆ˜ strcmp(), strlen(), strcpy() ๋ฐ string ํด๋ž˜์Šค ์ฃผ์š” ๋ฉค๋ฒ„ ํ•จ์ˆ˜ append, insert, length, clear ๋“ฑ๊ณผ ๊ทธ ์™ธ ์ฃผ์š” ํ•จ์ˆ˜๋“ค

 

 

#1.  string ํด๋ž˜์Šค์—๋Š” ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๊ฐ€ ์†ํ•ด ์žˆ๋Š”๋ฐ, ๊ทธ ์ค‘ ๋ฌธ์ž์—ด์˜ ์ดˆ๊ธฐํ™”์™€ ๊ด€๋ จ๋œ ํ•จ์ˆ˜์ธ clear๊ณผ empty ๊ฐ€ ์žˆ๋‹ค.

 

* clear : ๋ฌธ์ž๋ฅผ ๋น„์›Œ์ฃผ๋Š” ํ•จ์ˆ˜๋กœ, ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฆฌํ„ด ๊ฐ’์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

* empty : ๋ฌธ์ž์—ด์ด ์ž˜ ๋น„์›Œ์กŒ๋‚˜ ํ™•์ธํ•˜๋Š” ์šฉ๋„์˜ ํ•จ์ˆ˜์ด๋‹ค.

             string ๊ฐ์ฒด๊ฐ€ ๋นˆ ์ƒํƒœ๋ผ๋ฉด 1์„, ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด 0์„ ๋ฐ˜ํ™˜์‹œํ‚จ๋‹ค.

 

 

#2. ๊ทธ ๋‹ค์Œ์œผ๋กœ๋Š” ๋ฌธ์ž์—ด์„ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” substr ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ์ด๋ฏธ ์žˆ๋˜ ๋ฌธ์ž์—ด์„ ๊ฐ€์ ธ์˜ค๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋ณ„๋„์˜ ์ˆ˜์ • ์ž‘์—…์„ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

 

substr ์˜ ๋ฌธ๋ฒ•์€ 'string substr (size_t pos, size_t len) const;' ๊ฐ€ ๊ธฐ๋ณธ์ด๋ฉฐ, ์ด๋•Œ pos๋Š” ์ถ”์ถœํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋œปํ•˜๊ณ , len์€ pos๋กœ๋ถ€ํ„ฐ ๋ช‡๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ถ”์ถœํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. 

 

(์ด ๋ถ€๋ถ„์˜ ์˜ˆ์‹œ๋Š” ์ž˜ ์ดํ•ด๊ฐ€ ์ž˜ ๋˜์ง€ ์•Š์•„ jhnyang.tistory.com ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ฝ”๋”ฉํ•จ)

 

 

#3. <cstring> ์€ '๋ฌธ์ž์—ด ํ•จ์ˆ˜'๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, <cstring>์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ 4๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

-> strcmp : ๋‘ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜

-> strlen : ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜
-> strcat : ๋‘ ๋ฌธ์ž์—ด์„ ๋ถ™์ด๋Š” ํ•จ์ˆ˜

-> strcpy : ๋ฌธ์ž์—ด์„ ๋ณต์‚ฌํ•˜๋Š” ํ•จ์ˆ˜

 

 

#4. ํ•จ์ˆ˜ insert ์™€ append ๋Š” C++ ๋ฌธ์ž์—ด์„ ๊ฒฐํ•ฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

    (์˜†์˜ ๋‘ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฒ• ๋ง๊ณ ๋„ + ์™€ += ๊ฐ™์€ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๊ฒฐํ•ฉ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.)

 

-> insert ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์„ ์•„๋ฌด ๊ณณ์—๋‚˜๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ์œ„์น˜์— ์„ ํƒ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ ,

    ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

 

=> ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

   

  "    abZcde

       abcdZe   "

              

 

-> append ํ•จ์ˆ˜๋Š” C++๋กœ ์“ฐ์—ฌ์ง„ ๋ฌธ์ž์—ด์„ ๊ฒฐํ•ฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ๋Š” insert ํ•จ์ˆ˜์™€ ๋™์ผํ•˜์ง€๋งŒ, ๋ณธ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ง€์ • ์ธ์ˆ˜๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 

append ํ•จ์ˆ˜๋Š” ์•„๋ž˜์˜ ํ˜•์‹์„ ์ง€์ผœ์„œ ์‚ฌ์šฉํ•œ๋‹ค.

 

* ๋ฌธ์ž์—ด.append(์ถ”๊ฐ€ ํ•  ๋ฌธ์ž์—ด)

* ๋ฌธ์ž์—ด.append(์ถ”๊ฐ€ ํ•  ๋ฌธ์ž์—ด, ๋ฌธ์ž ์ˆ˜)

* ๋ฌธ์ž์—ด.append(์ถ”๊ฐ€ ํ•  ๋ฌธ์ž์—ด, ์œ„์น˜, ๋ฌธ์ž ์ˆ˜)

 

 

#5. ๋งˆ์ง€๋ง‰์€ ์˜ฌ๋ ค์ฃผ์‹  C++ ppt์˜ ์˜ˆ์‹œ ๋”ฐ๋ผ์„œ ์ฝ”๋”ฉํ•ด๋ณด๊ธฐ