Bolehkah Anda Menggabungkan Dua Huruf Rentetan Secara Terus dalam C ?

Susan Sarandon
Lepaskan: 2024-10-24 08:48:29
asal
360 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk
  1. Kurungkan Ungkapan:
<code class="cpp">const string message = "Hello" + (",world" + exclam);</code>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!