Rangkaian C String

C String Concatenation



Concatenation adalah proses untuk menambahkan string kedua ke akhir string pertama. Pada artikel ini kita akan membahas cara menggabungkan string dalam C dengan menggunakan metode yang berbeda.

Fungsi library C standar yang digunakan untuk menggabungkan string adalah strcat().







Prototipe Fungsi:

$arang * strcat (str1,str2);

di mana str1 adalah string pertama dan str2 adalah string kedua. Nilai kembali dari fungsi adalah penunjuk ke string yang digabungkan.



Sekarang, dengan bantuan contoh kita akan melihat bagaimana penggabungan dilakukan.



Contoh 1:

$ strcat (str1,str2);
di mana str1 adalah Bella
str2 adalah Whitmann

setelah penggabungan string,string pertama akan menjadi

str1 Bella Whitmann
str2 Whitmann

sementara string2 akan tetap sama.





Contoh2:

$ strcat (str2,str1);
di mana str1 adalah Bella
str2 adalah Whitmann

setelah penggabungan string,string yang digabungkan akan menjadi

str1 Bella
str2 Bella Whitmann

sementara string1 akan tetap sama.

Deklarasi dalam File Header C

Fungsi penanganan string dideklarasikan di bawah file header. Jika seseorang ingin menggunakan fungsi standar untuk menggabungkan, file header ini perlu disertakan.



Oleh karena itu, kita dapat mencapai penggabungan string dengan dua cara. Salah satunya dengan menggunakan fungsi pustaka C Standar dan lainnya tanpa menggunakan fungsi pustaka C. Berikut adalah contoh program untuk mendemonstrasikan kedua cara tersebut. Penggabungan string tanpa menggunakan fungsi pustaka C dapat diimplementasikan dalam berbagai cara.

Kami akan membahas itu juga di bagian mendatang dengan contoh.

Penggabungan Dua String dengan Menggunakan Fungsi C Library

#termasuk

#termasuk

#tentukan BUF_SIZE 256
ke dalamutama()
{
arangS1[BUF_SIZE],S2[BUF_SIZE]; /* Dua buffer string */

printf ('Masukkan string pertama '); ] /* Mencetak pesan ke konsol agar pengguna memasukkan string pertama*/
lupa (S1,BUF_SIZE,stdin); /* menyimpan string input pengguna di buffer S1 */
S1[ strlen (S1)-1] = ' 0';

printf ('Masukkan string kedua ');/* Mencetak pesan ke pengguna untuk memasukkan string ke-2*/
lupa (S2,BUF_SIZE,stdin); /* menyimpan string input pengguna di buffer S2 */
S2[ strlen (S2)-1] = ' 0';

strcat (S1,S2); /*Memanggil fungsi standar dengan string S1 dan S2 */

printf (' String gabungan adalah %s ',S1); /*Output : S1 ditambahkan dengan S2 */

kembali 0;
}

Cuplikan program dan output:

Deskripsi Teks dibuat secara otomatis

Deskripsi Teks dibuat secara otomatis dengan keyakinan sedang

Penggabungan Dua String Tanpa Menggunakan Fungsi Library

Menggunakan for loop untuk menyalin string kedua di akhir string pertama.

#termasuk

#termasuk

#tentukan BUF_SIZE 256
ke dalamutama()
{
arangS1[BUF_SIZE],S2[BUF_SIZE]; /* Deklarasikan buffer S1, S2 untuk kedua string*/
ke dalampanjang= 0,Saya,J; /*Variabel yang dibutuhkan untuk loop traversal*/

printf ('Masukkan string pertama'); /* Cetak pesan pengguna untuk memasukkan string pertama */
lupa (S1,BUF_SIZE,stdin); /* string input pengguna akan disimpan di S1*/
S1[ strlen (S1)-1] = ' 0';

printf ('Masukkan string kedua'); /* Cetak pesan pengguna untuk memasukkan string kedua */
lupa (S2,BUF_SIZE,stdin); /* string input pengguna akan disimpan di S2*/
S2[ strlen (S2)-1] = ' 0';
/* Lintasi string pertama untuk mencari panjang S1*/
untuk(Saya=0;S1[Saya]! =' 0';Saya++)
{
panjang=panjang+1;
}

/*length akan memiliki akhir S1, mulai dari panjang dan salin seluruh S2 ke S1*/
untuk(Saya=panjang,J=0;S2[J]! =' 0';Saya++,J++)
{
S1[Saya]=S2[J];
S1[Saya]=' 0';
}

/*Mencetak S1 hasil gabungan */
printf (' String gabungan adalah %s ',S1);
kembali 0;
}

Cuplikan program dan output:

Deskripsi Teks dibuat secara otomatis

Deskripsi Teks dibuat secara otomatis

Cara Lain Tanpa Fungsi Perpustakaan

Penggabungan menggunakan rekursi:

Fungsi stringconcatenate() akan digunakan untuk mendapatkan panjang string1. Jika S2 kosong maka karakter null akan ditetapkan ke S2.

Jika karakter null tidak ditetapkan ke S2 ​​daripada menambahkan elemen S2 di akhir S1 yaitu S1[i+j]=S2[j], ini meningkatkan nilai i dalam string.

Sebuah fungsi akan dipanggil sendiri dengan melewatkan string yang direformasi (S1, S2) sebagai argumen. Itu akan dipanggil lagi dan lagi sampai S2 kosong.

S1 yang digabungkan akan dicetak oleh main() sebagai

#termasuk

#termasuk

#tentukan BUF_SIZE 256

/* fungsi rekursif untuk mengimplementasikan rangkaian string sesuai deskripsi di atas */
ruang kosongmerangkai kata(arang *S1,arang *S2)
{
statis ke dalamSaya=0;
statis ke dalamJ;
J= strlen (S1);
jika(!S2[Saya])
{
S2[Saya]=' 0';
}
lain
{
S1[J] =S2[Saya];
S1[J+1] = ' 0';
Saya++;
merangkai kata(S1,S2);
}
}
ke dalamutama()
{
arangS1[BUF_SIZE],S2[BUF_SIZE];

printf ('Masukkan nilai string pertama:'); /* pesan pengguna untuk memasukkan string pertama */
lupa (S1,BUF_SIZE,stdin); /* pengguna memasukkan string pertama, simpan di S1 ​​*/
S1[ strlen (S1)-1] = ' 0';

printf ('Masukkan nilai string kedua:'); /* pesan pengguna untuk memasukkan string ke-2 */
lupa (S2,BUF_SIZE,stdin); /* pengguna memasukkan string pertama, simpan di S2 */
S2[ strlen (S2)-1] = ' 0';

merangkai kata(S1,S2); /* Memanggil fungsi dengan S1, S2 sebagai parameter */

printf ('kombinasi string ='%s' ',S1);
kembali 0;
}

Cuplikan program dan output:

Deskripsi Teks dibuat secara otomatis

Deskripsi Teks dibuat secara otomatis

Penggabungan dengan Menggunakan Fungsi

Fungsi strconcatenate() dipanggil oleh main() untuk menggabungkan dua string.

Fungsi mendapatkan panjang string1 dengan menggunakan stringlen(string1).

Hubungkan elemen string2[i] di string1[i+j]. Langkah ini akan diulang sampai string kosong. Di sini, kita menggabungkan string2 ke string1 di akhir string1.

String gabungan (string 1) akan diterima pada akhir ketika semua iterasi for loop akan dilakukan.

Main() mencetak string gabungan S1

#termasuk

#termasuk

#tentukan BUF_SIZE 256

/* berfungsi untuk mengimplementasikan rangkaian string sesuai deskripsi di atas */
ruang kosongmenggabungkan(arang *string1, arang*string2)
{
ke dalamSaya;
ke dalamJ= strlen (string1);
untuk(Saya=0;rangkaian2[Saya];Saya++)
{
string1[Saya+J]=string2[Saya];
}
string1[Saya+J]= ' 0';
}
ke dalamutama()
{
arangstring1[BUF_SIZE],string2[BUF_SIZE];
printf ('Masukkan string pertama:'); /* Pesan pengguna untuk string pertama */
lupa (string1,BUF_SIZE,stdin); /* Pengguna memasukkan string kedua, disimpan ke dalam string1 */
string1[ strlen (string1)-1] = ' 0';

printf ('Masukkan string kedua:'); /* Pesan pengguna untuk string ke-2 */
lupa (string2,BUF_SIZE,stdin); /* Pengguna memasukkan string kedua, disimpan ke dalam string2 */
string2[ strlen (string2)-1] = ' 0';

menggabungkan(string1,string2); /* Memanggil fungsi dengan string1 dan string2 sebagai argumen*/

printf ('String yang dihasilkan = %s' ',string1);
kembali 0;
}

Cuplikan program dan output:

Deskripsi Teks dibuat secara otomatis

Deskripsi Teks dibuat secara otomatis

Penggabungan String dengan Menggunakan memcpy

Dengan menggunakan fungsi memcpy(), penyambungan string dilakukan dengan cara menyalin kata per kata dari buffer string yang satu ke akhir buffer string lainnya dimana ukuran word adalah 4 byte mengingat kita sedang menjalankan mesin 32 bit sedangkan saat kita melakukan penggabungan string oleh menggunakan string concatenation dengan menggunakan fungsi strcat(), concatenation dilakukan dengan menyalin byte demi byte dari satu string buffer ke string buffer lainnya.

Pendekatan ini adalah kinerja yang efisien.

Satu-satunya pertimbangan saat menggunakan memcpy adalah menjaga ''.

Program C untuk mencapai strcat dengan memcpy:

#termasuk

#termasuk

#tentukan BUF_SIZE 256

Kosongkan strcat_memcpy(arang *S1, arang *S2)
{
ke dalampanjang1,panjang2;
panjang1= strlen (S1);
panjang2= strlen (S2);
memcpy (S1+panjang1,S2,panjang2);
}
ke dalamutama()
{

arangstring1[BUF_SIZE],string2[BUF_SIZE];
printf ('Masukkan string pertama:'); /* Pesan pengguna untuk string pertama */
lupa (string1,BUF_SIZE,stdin); /* Pengguna memasukkan string kedua, disimpan ke dalam string1 */
string1[ strlen (string1)-1] = ' 0';

printf ('Masukkan string kedua:'); /* Pesan pengguna untuk string ke-2 */
lupa (string2,BUF_SIZE,stdin); /* Pengguna memasukkan string kedua, disimpan ke dalam string2 */
string2[ strlen (string2)-1] = ' 0';

strcat_memcpy(string1,string2); /* Memanggil fungsi dengan string1 dan string2 sebagai argumen*/

printf ('String yang dihasilkan = %s' ',string1);
kembali 0;


}

Cuplikan program dan output:

Deskripsi Teks dibuat secara otomatis

Deskripsi Teks dibuat secara otomatis

Kesimpulan:

Dengan semua diskusi ini kita dapat menyimpulkan rangkaian string dalam C. Kita telah melihat banyak contoh dan contoh program untuk rangkaian string. Kami akan mengingat item utama: Ada dua cara, satu dengan standar C dan lainnya adalah cara yang ditentukan pengguna. Ditentukan pengguna lebih lanjut dapat dari banyak jenis, tergantung pada bagaimana pengguna ingin mengimplementasikan rangkaian string.