Direkomendasikan, 2021

Pilihan Editor

Perbedaan Antara Karakter Array dan String

C ++ mendukung keduanya, Character array dan string, karena C ++ memiliki manfaat yang cukup besar dalam menggunakan keduanya. Namun, ketidakmampuan untuk beroperasi pada array karakter meningkatkan pengembangan string kelas. Baik array karakter dan string berisi urutan karakter. Tetapi perbedaan mendasar antara array karakter dan string adalah bahwa "array karakter" tidak dapat dioperasikan dengan operator standar, sedangkan, objek "string" dapat dioperasikan dengan operator standar. Mari kita pelajari perbedaan lain antara array karakter dan string.

Grafik perbandingan

Dasar untuk PerbandinganArray KarakterTali
DasarArray karakter adalah kumpulan variabel, tipe data karakter.String adalah kelas dan variabel string adalah objek kelas "string".
Sintaksischar array_name [size];string string_name;
PengindeksanKarakter individu dalam array karakter dapat diakses dengan indeks dalam array.Dalam string karakter tertentu dapat diakses oleh fungsi "string_name.charAt (index)".
Tipe dataArray karakter tidak menentukan tipe data.Sebuah string mendefinisikan tipe data dalam C ++.
OperatorOperator di C ++ tidak dapat diterapkan pada array karakter.Anda dapat menerapkan operator C ++ standar pada string.
BatasBatas-batas array mudah dikuasai.Batas tidak akan diserbu.
MengaksesAkses cepat.Akses lambat.


Definisi Array Karakter

Array karakter adalah kumpulan variabel tipe data "char"; dapat berupa array satu dimensi atau array dua dimensi. Ini juga disebut "null terminated string". Array karakter adalah urutan karakter yang disimpan dalam alamat memori berurutan. Dalam array karakter, karakter tertentu dapat diakses oleh indeksnya. "Karakter kosong" mengakhiri array karakter ".

Mari kita ambil contoh array karakter: -

 nama char [] = {'A', 'j', 'a', 'y', '\ 0'}; atau char name [] = "Ajay"; 

Di sini, "char" adalah tipe data karakter, "nama" adalah nama variabel dari array karakter. Saya telah menunjukkan dua cara untuk menginisialisasi array karakter. Dalam metode pertama, nol disebutkan secara eksplisit dan dalam metode kedua, kompiler secara otomatis memasukkan nol.

Akhir string selalu berupa karakter nol; itu adalah karakter terminating dari array karakter. Array karakter bukan tipe data bawaan; kami membuat array karakter dengan mendeklarasikannya. Anda tidak dapat menerapkan operator standar pada larik karakter. Untuk beroperasi pada array karakter ada beberapa fungsi bawaan seperti, (strlen (), strlwr (), strupr (), strcat ()). Karena operator standar tidak dapat diterapkan ke array karakter, mereka tidak dapat mengambil bagian dalam ekspresi apa pun.

Penunjuk karakter ke array karakter juga dapat dibuat.

Mari kita pahami dengan sebuah contoh.

 char s1 [] = "Halo"; char s2 [] = "Sir"; s1 = s1 + s2; // operator kesalahan tidak dapat diterapkan s2 = s1; // error pointer karakter char * s = "Pagi"; char * p; p = s; // dieksekusi 

Dalam contoh di atas, kami telah mendeklarasikan dua karakter array s1, s2 dan dua karakter pointer s dan p. Array karakter s1 dan s2 diinisialisasi, kita dapat melihat bahwa operator penambahan (+) maupun operator penugasan tidak berfungsi pada array karakter. Tapi penunjuk karakter dapat ditugaskan ke penunjuk karakter lain.

Ingat sekali array karakter diinisialisasi itu tidak dapat diinisialisasi lagi ke set karakter lain. Akses ke array karakter atau string yang diakhiri null lebih cepat dibandingkan dengan string di C ++.

Definisi String

String bukan tipe data bawaan C ++. Ini objek kelas dari tipe "string". Seperti dalam C ++ membuat kelas sama seperti membuat "tipe". Kelas "string" adalah bagian dari pustaka C ++. Itu memegang set karakter atau array karakter secara keseluruhan. Ada tiga alasan di balik pengembangan kelas string standar.

  • Pertama adalah "konsistensi", array karakter bukan tipe data dalam hak mereka sendiri.
  • Kedua adalah "kenyamanan", Anda tidak dapat menggunakan operator standar pada array karakter.
  • Ketiga adalah "keamanan", batas-batas array mudah dilampaui.

Mari kita pahami string dengan sebuah contoh.

 string s1; s1 = "Halo"; string s2 ("Selamat pagi"); string s3 = "Hennery"; string s4; 

Dalam deklarasi di atas, empat variabel string atau objek (s1, s2, s3, s4) dideklarasikan. Dalam deklarasi di atas, saya telah menunjukkan tiga cara menginisialisasi string. String s1 dideklarasikan dan kemudian diinisialisasi secara terpisah. String s2 diinisialisasi oleh konstruktor kelas "String". String s3 diinisialisasi pada saat deklarasi seperti tipe data normal. Kita bisa menerapkan operator standar ke variabel string.

 s4 = s1; // menugaskan satu objek string ke lainnya s4 = s1 + s2; // menambahkan dua string dan menyimpan hasilnya di string ketiga jika (s3> s2) // membandingkan dua string string s5 (s1); membuat objek string baru menggunakan objek string yang ada 

Dalam kode di atas, berbagai operator diterapkan pada string dan berbagai operasi dilakukan. Pernyataan pertama menyalin satu objek string ke objek string lainnya. Dalam pernyataan kedua, dua string digabungkan dan disimpan dalam string ketiga. Dalam pernyataan ketiga, dua string dibandingkan. Dalam pernyataan keempat, objek string baru dibuat menggunakan objek string yang sudah ada.

Akses ke string lambat dibandingkan dengan array karakter atau string yang diakhiri nol.

Perbedaan Kunci Antara Larik Karakter dan Tali

  1. Array karakter adalah kumpulan variabel yang datatype karakter. String adalah kelas yang dipakai untuk mendeklarasikan string.
  2. Menggunakan nilai indeks Anda dapat mengakses karakter dari array karakter. Di sisi lain, jika Anda ingin mengakses karakter tertentu dalam sebuah string, Anda dapat mengaksesnya dengan function string's_name.charAt (index).
  3. Sebagai array bukan tipe data, karakter juga bukan tipe data. Di sisi lain, String menjadi tindakan kelas sebagai tipe referensi karenanya, dapat dikatakan String adalah tipe data.
  4. Anda tidak dapat menerapkan operator apa pun pada array karakter, sedangkan, Anda dapat menerapkan operator pada String.
  5. Menjadi array karakter array memiliki panjang yang tetap dan batas-batasnya dapat dengan mudah dikuasai. Di mana String tidak memiliki batasan apa pun.
  6. Elemen array disimpan di lokasi memori yang berdekatan sehingga dapat diakses lebih cepat dari variabel string.

Kesimpulan:

Ketidakmampuan untuk beroperasi pada array karakter meningkatkan pengembangan kelas string standar.

Top