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
Linda Hamiltonasal
2024-11-30 14:57:12649semak imbas

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");

Sebaik-baiknya, baris ini harus mengeluarkan:

Here are the first 8 chars: A string

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");

Kaedah 2: Pendekatan Serbaguna

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

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");

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);

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!

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