Pengaturcaraan C

Panjang Rentetan dalam Bahasa C

Panjang Rentetan dalam Bahasa C
Rentetan dalam bahasa C adalah susunan watak yang diakhiri dengan watak nol (\ 0). Panjang rentetan adalah bilangan aksara dalam rentetan. Dalam panjang rentetan '\ 0', watak tidak dikira.

Dalam contoh yang ditunjukkan di atas, panjang tali str ialah 6.

Dalam tutorial ini, pertama, kita akan menunjukkan cara menggunakan a fungsi yang ditentukan pengguna untuk mengira panjang tali, dan kemudian kami akan menunjukkan kepada anda fungsi perpustakaan terbina dalam strlen (). Kami juga menunjukkan kepada anda penggunaan saiz operator untuk literal rentetan.

Panjang Rentetan Menggunakan Fungsi Ditentukan Pengguna

Anda boleh menulis fungsi yang ditentukan pengguna yang mengembalikan bilangan watak dalam rentetan.

// Contoh1.c
#sertakan
int stringLength (char * str)

int i = 0;
semasa (str [i] != '\ 0') i ++;
pulangan i;

int utama ()

char str [30] = "STRING";
printf ("Panjang tali string adalah =>% d \ n", stringLength (str));
pulangan 0;

Di sini, kita mengulangi loop sementara dari i = 0 sehingga kita tidak menemui '\ 0' watak. Nilai i meningkat sebanyak 1 dalam setiap lelaran gelung sementara. Apabila gelung berakhir, nilai i ialah panjang tali.

Panjang tali menggunakan fungsi perpustakaan terbina dalam

Fungsi perpustakaan terbina dalam strlen () juga boleh digunakan untuk menentukan panjang tali.

fungsi strlen ():

Fail tajuk:

tali.h

Sintaks:

size_t strlen (const char * str)

Hujah: Fungsi ini mengambil argumen penunjuk jenis ke char.

Nilai pulangan: Fungsi ini mengembalikan panjang tali str. Perhatikan bahawa saiz_t hanyalah alias bilangan bulat yang tidak ditandatangani.

// Contoh2.c
#sertakan
#sertakan
int utama ()

char str1 [30] = "STRING ARRAY";
char * str2;
char * str3;
str2 = str1;
str3 = "STRING POINTER";
printf ("Panjang tali str1 adalah =>% ld \ n", strlen (str1));
printf ("Panjang tali str2 adalah =>% ld \ n", strlen (str2));
printf ("Panjang tali str3 adalah =>% ld \ n", strlen (str3));
printf ("Panjang tali" STRING LITERALS adalah =>% ld \ n ", strlen (" STRING LITERALS "));
pulangan 0;

Di sini, kami meneruskan rentetan string, string pointer, dan string literal ke fungsi strlen, dan fungsi mengembalikan panjang tali.

Panjang tali menggunakan ukuran operator

Kami juga boleh menggunakan saiz operator untuk panjang rentetan (hanya untuk string string). Tetapi, kita harus mengurangkan 1 dari nilai yang dikembalikan oleh pengendali ini, kerana ia juga mengira watak '\ 0'. Untuk tatasusunan dan penunjuk, ukuran operator mengembalikan ukuran array dan penunjuk yang diperuntukkan.

// Contoh3.c
#sertakan
int utama ()

char str1 [30] = "STRING";
char * str2 = str1;
printf ("Panjang" STRING "adalah =>% d \ n", (sizeof ("STRING") - 1));
printf ("Ukuran yang diperuntukkan bagi susunan str1 adalah =>% d \ n", sizeof (str1));
printf ("Ukuran penunjuk str2 adalah =>% d \ n", sizeof (str2));
pulangan 0;

Di sini, di Baris no 9, kita melewati string harfiah "STRING" dan mendapatkan ukurannya, termasuk watak '\ 0'. Oleh itu, kita tolak 1 dan dapatkan ukuran rentetan sebenar.

Apabila kita meneruskan array ke ukuran operator, ia mengembalikan ukuran array yang diperuntukkan, iaitu 30, dan ketika melewati penunjuk watak, ia mengembalikan ukuran penunjuk.

Kesimpulannya

Oleh itu, dalam tutorial ini, kami telah menunjukkan kepada anda bagaimana panjang tali dapat dihitung dengan pelbagai cara. Anda boleh menggunakan dalam kod anda mana kaedah yang paling sesuai untuk anda.

Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...
Mengawal & menguruskan pergerakan tetikus antara beberapa monitor di Windows 10
Pengurus Tetikus Paparan Dwi membolehkan anda mengawal & mengkonfigurasi pergerakan tetikus antara beberapa monitor, dengan memperlahankan pergerakann...
WinMouse membolehkan anda menyesuaikan & meningkatkan pergerakan penunjuk tetikus pada PC Windows
Sekiranya anda ingin meningkatkan fungsi lalai penunjuk tetikus anda gunakan perisian percuma WinMouse. Ia menambah lebih banyak ciri untuk membantu a...