Menggabungkan Huruf Rentetan
Dalam C , anda boleh menggabungkan rentetan menggunakan operator. Walau bagaimanapun, terdapat peraturan tertentu yang perlu dipatuhi apabila menggabungkan literal rentetan.
Kesahihan Definisi Rentetan
Kod berikut mentakrifkan dua pembolehubah rentetan:
<code class="cpp">const string hello = "Hello"; const string message = hello + ",world" + "!";</code>
Kod ini sah kerana salah satu daripada dua rentetan yang digabungkan ialah objek std::string (hello). Operator akan menilai gabungan hello dan ",world" terlebih dahulu, menghasilkan objek std::string. Objek ini kemudiannya digabungkan dengan "!".
Walau bagaimanapun, kod berikut adalah tidak sah:
<code class="cpp">const string exclam = "!"; const string message = "Hello" + ",world" + exclam;</code>
Kod ini tidak sah kerana kedua-dua rentetan yang digabungkan di bahagian paling kiri ialah literal rentetan (" Hello" dan ",world"). Operator tidak boleh digunakan untuk menggabungkan dua literal rentetan secara langsung.
Persekutuan Kiri-ke-Kanan Operator
Pengendali dalam C mempunyai perkaitan kiri-ke-kanan. Ini bermakna ungkapan dalam kurungan yang setara untuk kod contoh kedua ialah:
<code class="cpp">const string message = (("Hello" + ",world") + exclam);</code>
Seperti yang anda lihat, dua literal rentetan "Hello" dan ",world" disatukan dahulu, menghasilkan masa kompilasi ralat.
Mengatasi Had
Terdapat beberapa cara untuk mengatasi had ini:
<code class="cpp">const string message = string("Hello") + ",world" + exclam;</code>
<code class="cpp">const string message = "Hello" + (",world" + exclam);</code>
Sebab Pengehadan
Oleh itu, apabila anda cuba menggabungkan dua literal rentetan menggunakan , anda cuba menambahkan dua penunjuk const char* bersama-sama dengan berkesan . Ini tidak mungkin kerana menambah dua penunjuk tidak masuk akal dalam konteks penggabungan rentetan.Atas ialah kandungan terperinci Bolehkah Anda Menggabungkan Dua Huruf Rentetan Secara Terus dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!