Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menentukan Bilangan Aksara untuk Dicetak daripada String menggunakan printf()?

Bagaimana untuk Menentukan Bilangan Aksara untuk Dicetak daripada String menggunakan printf()?

Linda Hamilton
Lepaskan: 2024-11-30 14:57:12
asal
708 orang telah melayarinya

How to Specify the Number of Characters to Print from a String using printf()?

Menentukan Bilangan Aksara untuk Dicetak dengan printf()

Timbul persoalan: adakah terdapat mekanisme dalam printf() yang membenarkan menentukan bilangan aksara untuk dicetak daripada rentetan? Seseorang mungkin membandingkan ini dengan menentukan tempat perpuluhan dalam integer. Sebagai contoh:

printf ("Here are the first 8 chars: %s\n", "A string that is more than 8 chars");
Salin selepas log masuk

Sebaik-baiknya, baris ini harus mengeluarkan:

Here are the first 8 chars: A string
Salin selepas log masuk

Penyelesaian

Terdapat dua pendekatan utama untuk mencapai ini dalam C.

Kaedah 1: Yang Asas Pendekatan

printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars");
Salin selepas log masuk

Kaedah 2: Pendekatan Serbaguna

printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars");
Salin selepas log masuk

Dalam pendekatan ini, panjang disediakan sebagai hujah int untuk printf() . '*' dalam format ditafsirkan sebagai permintaan untuk mendapatkan panjang daripada hujah.

Notasi Lanjutan

Notasi lain boleh digunakan:

printf ("Here are the first 8 chars: %*.*s\n",
        8, 8, "A string that is more than 8 chars");
Salin selepas log masuk

Analogi dengan "%8.8s", tatatanda ini juga membolehkan spesifikasi panjang minimum dan maksimum pada masa jalan. Ini menjadi amat berguna dalam senario seperti:

printf("Data: %*.*s Other info: %d\n", minlen, maxlen, string, info);
Salin selepas log masuk

Spesifikasi POSIX untuk printf() memberikan penjelasan terperinci tentang mekanisme ini.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Bilangan Aksara untuk Dicetak daripada String menggunakan printf()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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