Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Anda Menggabungkan Dua Huruf Rentetan Secara Terus dalam C ?

Bolehkah Anda Menggabungkan Dua Huruf Rentetan Secara Terus dalam C ?

Susan Sarandon
Susan Sarandonasal
2024-10-24 08:48:29361semak imbas

Can You Concatenate Two String Literals Directly in C  ?

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:

  1. Gunakan std::string Objek:
<code class="cpp">const string message = string("Hello") + ",world" + exclam;</code>
  1. Kurungkan Ungkapan:
<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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn