Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menentukan Bilangan Aksara untuk Dicetak daripada String menggunakan 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!