<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Chuỗi &#40;String&#41; trong C&#x002F;C++</title>
<meta name="description" content="Chuỗi &#40;String&#41; trong C&#x002F;C++ - Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;chuoi-string-trong-c-c-11435.html">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Chuỗi &#40;String&#41; trong C&#x002F;C++">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;chuoi-string-trong-c-c-11435.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/chuoi-string-trong-c-c-11435.html">
<link rel="shortcut icon" href="https://nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/chuoi-string-trong-c-c-11435.html">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://nguoicodonvn2008.info/">https://nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Chuỗi &#40;String&#41; trong C&#x002F;C++</h1>
		<ul class="list-inline">
			<li>Thứ tư - 22/10/2025 23:45</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Chuỗi &#40;String&#41; trong C&#x002F;C++" src="https://st.quantrimang.com/photos/image/2018/08/06/chuoi-string-trong-c-c-3.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;"><strong>String trong C++ dùng để làm gì?</strong>&nbsp;Bài viết sẽ cung cấp cho bạn<strong>&nbsp;những điều cần biết về chuỗi trong C.</strong></p>

<div style="text-align: justify;">&nbsp;</div>

<p style="text-align: justify;">C++&nbsp;cung cấp hai kiểu biểu diễn chuỗi như sau:</p>

<ul>
	<li style="text-align: justify;">Chuỗi theo phong cách của ngôn ngữ C (C-style),</li>
	<li style="text-align: justify;">Lớp Chuỗi (String) được giới thiệu trong C/C++ chuẩn.</li>
</ul>

<p style="text-align: justify;">Trong quá trình học code C++ bạn có thể dùng&nbsp;C++ online editor&nbsp;này để kiểm tra code nhanh mà không cần mở IDE trên máy.</p>

<h2 style="text-align: justify;">&nbsp;</h2>

<h2 id="mcetoc_1iuoaju971i" style="text-align: justify;">Chuỗi theo phong cách C</h2>

<p style="text-align: justify;">Dạng chuỗi này bắt nguồn từ ngôn ngữ C và tiếp tục được hỗ trợ trong C/C++. Chuỗi trong ngôn ngữ lập trình C thực chất là mảng một chiều của các ký tự mà kết thúc bởi một ký tự<strong>&nbsp;null &#039;\0&#039;</strong>.</p>

<p style="text-align: justify;">Phần khai báo và khởi tạo dưới đây tạo ra một chuỗi bao gồm một từ &quot;Hello&quot;. Để giữ các giá trị null tại cuối của mảng, cỡ của mảng các ký tự bao gồm một chuỗi phải nhiều hơn số lượng các ký tự trong từ khóa &quot;Hello&quot;.</p>

<pre id="pre0" style="text-align: justify;">
char loiChao&#91;6&#93; = {&#039;H&#039;, &#039;e&#039;, &#039;l&#039;, &#039;l&#039;, &#039;o&#039;, &#039;\0&#039;};</pre>

<p style="text-align: justify;">Nếu bạn theo quy tắc khởi tạo các chuỗi, bạn có thể viết lệnh như sau:</p>

<pre id="pre1" style="text-align: justify;">
char loiChao&#91;&#93; = &quot;Hello&quot;;</pre>

<p style="text-align: justify;">Dưới đây là phần biểu diễn ô nhớ cho đoạn chuỗi trên trong ngôn ngữ C/C++:</p>

<p style="text-align: justify;"><img alt=" Ô nhớ cho đoạn chuỗi trên trong ngôn ngữ C/C++" data-i="0" data-src="https://st.quantrimang.com/photos/image/2018/08/06/chuoi-string-trong-c-c-1.jpg" data-was-processed="true" height="191" src="https://st.quantrimang.com/photos/image/2018/08/06/chuoi-string-trong-c-c-1.jpg" width="560" /></p>

<p style="text-align: justify;">Thực tế, bạn không đặt ký tự null tại vị trí cuối cùng của biến hằng số. Bộ biên dịch C tự động thêm &#039;\0&#039; tại ví trí cuối cùng của chuỗi khi nó khởi tạo chuỗi. Cùng thử ví dụ in ra chuỗi sau đây:</p>

<pre id="pre2" style="text-align: justify;">
#include &lt;iostream&gt; 
using namespace std; 
int main () 
{ 
    char loiChao&#91;9&#93; = {&#039;X&#039;,&#039;i&#039;,&#039;n&#039;,&#039; &#039;,&#039;c&#039;,&#039;h&#039;,&#039;a&#039;,&#039;o&#039;, &#039;\0&#039;}; 
    cout &lt;&lt; &quot;Khi gap nhau, chung ta noi: &quot;; 
    cout &lt;&lt; loiChao &lt;&lt; endl; 
    return 0; 
}</pre>

<p style="text-align: justify;">Khi đoạn code trên được biên dịch và thực hiện, kết quả in ra sẽ như sau:</p>

<pre id="pre3" style="text-align: justify;">
Khi gap nhau, chung ta noi: Xin chao</pre>

<p style="text-align: justify;">Ngôn ngữ C/C++ hỗ trợ nhiều hàm đa dạng để thao tác các chuỗi kết thúc là null:</p>

<table border="2" cellpadding="2">
	<tbody>
		<tr>
			<th style="text-align: justify;">STT</th>
			<th style="text-align: justify;">Hàm &amp; Mục đích</th>
		</tr>
		<tr>
			<td style="text-align: justify;">strcpy(s1, s2);</td>
			<td>
			<p style="text-align: justify;">Sao chép chuỗi s2 cho chuỗi s1.</p>
			</td>
		</tr>
		<tr>
			<td style="text-align: justify;">strcat(s1, s2);</td>
			<td>
			<p style="text-align: justify;">Nối chuỗi s2 vào cuối chuỗi s1.</p>
			</td>
		</tr>
		<tr>
			<td style="text-align: justify;">strlen(s1);</td>
			<td>
			<p style="text-align: justify;">Trả về độ dài của chuỗi s1.</p>
			</td>
		</tr>
		<tr>
			<td style="text-align: justify;">strcmp(s1, s2);</td>
			<td>
			<p style="text-align: justify;">Trả về 0 nếu s1 và s2 là như nhau; nhỏ hơn 0 nếu s1&lt;s2; lớn hơn 0 nếu s1&gt;s2.</p>
			</td>
		</tr>
		<tr>
			<td style="text-align: justify;">strchr(s1, ch);</td>
			<td>
			<p style="text-align: justify;">Trả về con trỏ tới vị trí đầu tiên của ch trong s1.</p>
			</td>
		</tr>
		<tr>
			<td style="text-align: justify;">strstr(s1, s2);</td>
			<td>
			<p style="text-align: justify;">Trả về con trỏ tới vị trí đầu tiên của chuỗi s2 trong chuỗi s1.</p>
			</td>
		</tr>
	</tbody>
</table>

<p style="text-align: justify;">Dưới đây là ví dụ cho việc sử dụng một vài hàm bên trên:</p>

<pre id="pre4" style="text-align: justify;">
#include &lt;iostream&gt; 
#include &lt;cstring&gt; 
using namespace std; 
int main () 
{ 
   char chuoi1&#91;10&#93; = &quot;Hello&quot;; 
   char chuoi2&#91;10&#93; = &quot;Christmas&quot;; 
   char chuoi3&#91;10&#93;; 
   int len; 

   // sao chep chuoi1 vao trong chuoi3 
   strcpy(chuoi3, chuoi1); 
   cout &lt;&lt; &quot;strcpy(chuoi3, chuoi1): &quot; &lt;&lt; chuoi3 &lt;&lt; endl; 

   // noi hai chuoi: chuoi1 va chuoi2 
   strcat(chuoi1, chuoi2); 
   cout &lt;&lt; &quot;strcat(chuoi1, chuoi2): &quot; &lt;&lt; chuoi1 &lt;&lt; endl; 
   // tong do dai cua chuoi1 mot sau khi thuc hien noi chuoi 
   len = strlen(chuoi1); 
   cout &lt;&lt; &quot;Dung ham strlen(chuoi1) de tinh do dai chuoi1: &quot; &lt;&lt; len &lt;&lt; endl; 
   return 0; 
}</pre>

<p style="text-align: justify;">Chạy chương trình C/C++ trên sẽ cho kết quả như hình sau:</p>

<p style="text-align: justify;"><img alt="" data-i="1" data-src="https://st.quantrimang.com/photos/image/2018/08/06/chuoi-string-trong-c-c-2.jpg" data-was-processed="true" height="56" src="https://st.quantrimang.com/photos/image/2018/08/06/chuoi-string-trong-c-c-2.jpg" width="426" /></p>

<h2 id="mcetoc_1iuoaju971j" style="text-align: justify;">Lớp String trong C/C++</h2>

<p style="text-align: justify;">Thư viện chuẩn C/C++ cung cấp một kiểu lớp&nbsp;<strong>String</strong>&nbsp;mà hỗ trợ tất cả hoạt động liên quan tới chuỗi đã đề cập ở trên, và bổ sung thêm nhiều tính năng nữa. Chúng ta sẽ học lớp này trong Thư viện chuẩn C/C++ (C++ Standard Library), nhưng lúc này, chúng ta xem xét ví dụ sau:</p>

<p style="text-align: justify;">Lúc này, có thể bạn không hiểu ví dụ này, bởi vì chúng ta chưa bàn luận về&nbsp;<strong>Lớp và Đối tượng</strong>&nbsp;trong C/C++. Vì thế, bạn quan sát và ghi nhớ chúng tới khi bạn đã hiểu các khái niệm về Hướng đối tượng được trình bày ở chương sau đó.</p>

<pre id="pre5" style="text-align: justify;">
#include &lt;iostream&gt; 
#include &lt;string&gt; 
using namespace std; 
int main () 
{ 
    string chuoi1 = &quot;Hello&quot;; 
    string chuoi2 = &quot;Christmas&quot;; 
    string chuoi3; int len; 

    // sao chep chuoi1 vao trong chuoi3 
    chuoi3 = chuoi1; 
    cout &lt;&lt; &quot;Bay gio chuoi3 la: &quot; &lt;&lt; chuoi3 &lt;&lt; endl; 

    // noi hai chuoi: chuoi1 va chuoi2 
    chuoi3 = chuoi1 + chuoi2; 
    cout &lt;&lt; &quot;chuoi1 + chuoi2 co ket qua la: &quot; &lt;&lt; chuoi3 &lt;&lt; endl; 

    // tong do dai cua chuoi3 mot sau khi thuc hien noi chuoi 
    len = chuoi3.size(); 
    cout &lt;&lt; &quot;Tinh do dai voi ham chuoi3.size(): &quot; &lt;&lt; len &lt;&lt; endl; 
    return 0; 
}</pre>

<p style="text-align: justify;">Chạy chương trình C/C++ trên sẽ cho kết quả như hình sau:</p>

<p style="text-align: justify;"><img alt="Lớp String trong C/C++" data-i="2" data-src="https://st.quantrimang.com/photos/image/2018/08/06/chuoi-string-trong-c-c-3.jpg" data-was-processed="true" height="56" src="https://st.quantrimang.com/photos/image/2018/08/06/chuoi-string-trong-c-c-3.jpg" width="429" /></p>

<h2 id="mcetoc_1iuob5vri6u" style="text-align: justify;">Sự khác biệt giữa chuỗi và ký tự mảng</h2>

<table cellpadding="2" cellspacing="2">
		<tr>
			<td>
			<p style="text-align: justify;"><strong>Chuỗi</strong></p>
			</td>
			<td>
			<p style="text-align: justify;"><strong>Ký tự mảng</strong></p>
			</td>
		</tr>
	<tbody>
		<tr>
			<td style="text-align: justify;">Một string hay chuỗi là một class xác định đối tượng có thể, được biểu thị bằng một dòng các ký tự.</td>
			<td style="text-align: justify;">Một mảng ký tự đơn giản đúng như tên gọi của nó. Một ký tự null có thể kết thúc mảng này.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">Trong trường hợp của string, bộ nhớ được cấp phát động. Nhiều bộ nhớ hơn có thể được phân bổ trong thời gian chạy theo yêu cầu. Vì không có bộ nhớ nào được phân bổ trước nên không có bộ nhớ nào bị lãng phí.</td>
			<td style="text-align: justify;">Kích thước của mảng ký tự phải được phân bổ dưới dạng tĩnh. không thể cấp phát thêm bộ nhớ trong thời gian chạy nếu cần. Bộ nhớ được phân bổ không sử dụng cũng bị lãng phí</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;">Khi chuỗi đại diện cho đối tượng, không có sự phân rã mảng.</p>
			</td>
			<td style="text-align: justify;">Có một mối đe dọa phân rã mảng khi dùng mảng ký tự.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">Chuỗi chạy chậm hơn khi so sánh với mảng triển khai với mảng ký tự.</td>
			<td style="text-align: justify;">Việc triển khai mảng ký tự nhanh hơn chuỗi std::.</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;">Class string xác định một số chức năng cho phép thực hiện các thao tác đa dạng trên chuỗi.</p>
			</td>
			<td>
			<p style="text-align: justify;">Mảng ký tự không cung cấp sẵn nhiều hàm để thao tác với chuỗi.</p>
			</td>
		</tr>
	</tbody>
</table>

<h2 id="mcetoc_1iuob5vri6v" style="text-align: justify;">Các hàm chuỗi trong C++</h2>

<p style="text-align: justify;">C++ cung cấp một số hàm tích hợp được sử dụng để thao tác chuỗi, chẳng hạn như các hàm strcpy() và strcat() để sao chép và nối chuỗi. Một vài trong số chúng là:</p>

<table cellpadding="1" cellspacing="1">
	<tbody>
		<tr>
			<td>
			<p style="text-align: justify;"><strong>Hàm</strong></p>
			</td>
			<td>
			<p style="text-align: justify;"><strong>Mô tả</strong></p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><strong>length()</strong></p>
			</td>
			<td>
			<p style="text-align: justify;">Trả về độ dài của chuỗi</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><a>swap() </a></p>
			</td>
			<td>
			<p style="text-align: justify;">Hoán đổi giá trị của hai chuỗi</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><strong>size()</strong></p>
			</td>
			<td>
			<p style="text-align: justify;">Tìm kích thước của chuỗi</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><a>resize()</a></p>
			</td>
			<td>
			<p style="text-align: justify;">Chỉnh lại kích thước chiều dài của chuỗi tới số ký tự được cung cấp</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><a>find()</a></p>
			</td>
			<td>
			<p style="text-align: justify;">Tìm chuỗi được chuyển trong tham số</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><a>push_back()</a></p>
			</td>
			<td>
			<p style="text-align: justify;">Đẩy các ký tự được chuyển về cuối chuỗi</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><strong>pop_back()</strong></p>
			</td>
			<td>
			<p style="text-align: justify;">Xóa ký tự cuối cùng khỏi chuỗi</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><strong>clear()</strong></p>
			</td>
			<td>
			<p style="text-align: justify;">Loại bỏ toàn bộ thành phần trong chuỗi</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><a>strncmp()</a></p>
			</td>
			<td>
			<p style="text-align: justify;">So sánh nhiều nhất num byte đầu tiên của cả hai chuỗi được truyền.</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><a>strncpy()</a></p>
			</td>
			<td>
			<p style="text-align: justify;">Tương tự như hàm strcpy(), ngoại trừ việc sao chép tối đa n byte của src</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><a>strrchr()</a></p>
			</td>
			<td>
			<p style="text-align: justify;">Xác định vị trí xuất hiện cuối cùng của một ký tự trong chuỗi.</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><a>strcat()</a></p>
			</td>
			<td>
			<p style="text-align: justify;">Hàm này thêm một bản sao của chuỗi nguồn vào cuối chuỗi đích</p>
			</td>
		</tr>
		<tr>
			<td>
			<p style="text-align: justify;"><strong>find()</strong></p>
			</td>
			<td>
			<p style="text-align: justify;">Tìm kiếm một chuỗi con nhất định bên trong một chuỗi và trả về vị trí của ký tự đầu tiên của chuỗi con đó.</p>
			</td>
		</tr>
	</tbody>
</table>

<h2 style="text-align: justify;">Những câu hỏi thường gặp về string trong C/C++</h2>

<h3 style="text-align: justify;">String trong C++ là gì?</h3>

<p style="text-align: justify;">Chuỗi trong C++ được sử dụng để lưu trữ và thao tác các chuỗi ký tự. Có hai loại chính:</p>

<ul>
	<li style="text-align: justify;">Chuỗi kiểu C (mảng ký tự): Đây là các mảng char kết thúc bằng null, được kế thừa từ C. Chúng yêu cầu quản lý bộ nhớ thủ công và các hàm thao tác chuỗi từ<strong>&nbsp;&lt;cstring&gt;</strong>.</li>
	<li style="text-align: justify;">Đối tượng<strong>&nbsp;std::string</strong>: Đây là các đối tượng của lớp<strong>&nbsp;std::string</strong>, một phần của Thư viện Chuẩn C++ (&lt;string&gt;). Chúng cung cấp khả năng quản lý bộ nhớ tự động, một tập hợp các hàm thành viên phong phú để thao tác và thường được ưa chuộng hơn các chuỗi kiểu C trong quá trình phát triển C++ hiện đại.</li>
</ul>

<h3 style="text-align: justify;">Khai báo và khởi tạo chuỗi như thế nào?</h3>

<p style="text-align: justify;"><strong>Chuỗi kiểu C</strong></p>

<pre id="pre6" style="text-align: justify;">
    char myCString&#91;&#93; = &quot;Hello&quot;;
    char anotherCString&#91;10&#93;;
    strcpy(anotherCString, &quot;World&quot;); // Requires &lt;cstring&gt;</pre>

<p style="text-align: justify;"><strong>std::string</strong></p>

<pre id="pre7" style="text-align: justify;">
    std::string myString = &quot;Hello&quot;;
    std::string anotherString(&quot;World&quot;);
    std::string emptyString;</pre>

<h3 style="text-align: justify;">Nối chuỗi như thế nào?</h3>

<ul>
	<li style="text-align: justify;">Chuỗi kiểu C: Sử dụng strcat() hoặc strncat() từ &lt;cstring&gt;.</li>
	<li style="text-align: justify;">std::string: Sử dụng toán tử + hoặc hàm thành viên append().</li>
</ul>

<pre id="pre8" style="text-align: justify;">
    std::string s1 = &quot;Hello&quot;;
    std::string s2 = &quot; World&quot;;
    std::string result = s1 + s2; // result is &quot;Hello World&quot;
    s1.append(s2); // s1 becomes &quot;Hello World&quot;</pre>

<div style="text-align: justify;">&nbsp;</div>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com:
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/chuoi-string-trong-c-c-11435.html" title="Chuỗi &#40;String&#41; trong C&#x002F;C++">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/chuoi-string-trong-c-c-11435.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://nguoicodonvn2008.info",
            "logo": "https://nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>