Halo, dan selamat datang kembali. Saya ingin memberikan demonstrasi
solusi untuk tantangan kami sebelumnya yang berkaitan dengan pemahaman array karakter.
Terutama, kita akan menulis fungsi untuk mendapatkan panjang string, fungsi
untuk menggabungkan string dan fungsi untuk memeriksa apakah
dua string sama.
Jadi saya akan membuat proyek. Saya hanya akan
menamakannya memahami string karakter.
Dan hal pertama yang akan kita lakukan adalah mengimplementasikan fungsi panjang ini.
Kita akan membuat
tiga deklarasi fungsi di atas.
Kami akan memberi nama panjang string yang pertama.
Kami akan menggunakan kasing unta untuk penamaan kami.
Ini hanya akan mengambil string karakter konstan.
Jadi bagaimana kita tahu itu string karena itu adalah array karakter dan
kemudian kita akan menempatkan titik koma. Itu akan menjadi yang pertama dibuat, jadi kita akan berhenti
di situ untuk saat ini.
Dan kita akan membuat fungsi
ini, definisikan di
bawah sehingga Anda harus memahami const kata kunci yang bagus itu.
Const berarti string karakter yang tidak dapat diubah, tidak dapat dimodifikasi.
Alasan kami menggunakan const di sini
adalah karena kami tidak ingin mengubah string di dalam
fungsi, kami hanya ingin menguraikannya dan kemudian mengembalikan panjangnya, mengembalikan bilangan bulat.
Fungsi ini sebenarnya cukup mudah untuk diimplementasikan karena kita hanya akan melalui sebuah array.
Jadi kita benar-benar dapat mengatakan dalam hitungan
sama dengan nol. Ini adalah variabel lokal.
Itu hanya dapat digunakan di dalam fungsi ini.
Sekarang Anda mungkin bertanya pada diri sendiri mengapa kami tidak dapat menggunakan ukuran
operator karena ukuran operator akan memberi tahu kami ukuran string, itu tidak akan memberi tahu
kami berapa banyak karakter di dalam string itu.
Tapi yang perlu kita lakukan hanyalah membuat
loop dan menelusuri array sampai kita mencapai terminator nol.
Jadi kita bisa melihat string kita. Kita dapat mengatakan
wow jumlah string tidak sama dengan terminator nol,
terminator nol diwakili di dalam satu karakter sebagai
garis miring terbalik nol.
Dan kita bisa menggunakan operator not equals karena kita membandingkan dengan karakter.
Dan kami hanya memiliki satu hal di isi pernyataan while plus plus
count ini, hanya menambah hitungan.
Dan kemudian kami ingin mengembalikannya, kami hanya mengatakan jumlah pengembalian dan hanya itu.
Itulah seluruh fungsi panjang string. Ini cukup mudah karena
string karakter berada di dalam array
dan string diakhiri dengan terminator nol.
Jadi untuk menguji ini, kita bisa pergi
dan memulai metode utama kita dan kita
bisa membuat beberapa karakter konstan,
katakan saja kata satu
Jason.
Jadi ini adalah bagaimana Anda membuat array karakter di c.
Anda tidak harus memiliki konstanta di sana, tetapi ini tidak sedang dimodifikasi.
Gunakan kata kunci char, tipe data char, pengidentifikasi dan kemudian tanda kurung.
Lebih baik untuk tidak menentukan ukuran di dalam tanda kurung karena
kompiler c akan secara otomatis menambahkan terminator nol.
Dan kemudian Anda tepat setelah
operator penugasan, Anda memasukkan literal string Anda di dalam tanda kutip ganda.
Kami akan membuat pasangan di sini untuk memastikan itu berfungsi.
Kita dapat menampilkan string karakter dengan sangat mudah karena kita hanya dapat
menggunakan simbol persen s, kecuali yang sebenarnya ingin kita tampilkan di
sini adalah panjangnya. Jadi kita akan menggunakan
persen d.
Jadi kita hanya akan mencetak tautan dari tiga
string ini, persen d dan kita hanya akan memiliki beberapa spasi di antaranya dan
kemudian menambahkan umpan baris.
Dan ini hanya akan memanggil fungsi panjang string untuk setiap
kata, cukup sederhana
di sini, dan hanya itu. Jadi sekarang kita dapat membangun dan menguji dan melihat apakah ini benar-benar berfungsi.
Apa yang harus kita lihat sebagai output adalah
kita harus melihat panjang Jason yang 5, panjang oke yang 2 dan
panjang apa pun yang terlihat sekitar 8.
Jadi di sini kita memiliki 5, 2 dan 8, yang terlihat benar.
Jadi begitulah cara Anda bisa menulis panjang string. Mari kita beralih ke fungsi penggabungan.
Fungsi penggabungan
hanya akan mengambil tiga string dua konstanta.
Dan ini tidak akan mengembalikan apa pun. Itu hanya akan
menempatkan string yang dihasilkan di parameter pertama.
Jadi kita akan menyebutnya concat. Kita akan mendapatkan
hasil, dan kita akan memiliki dua
string, satu yang ingin kita gabungkan dua dan kemudian yang kita
ingin hanya memiliki satu string. Jadi kita beri nama string satu, string dua.
Dan di sana kita pergi. Dan itulah deklarasi fungsi kami.
Jadi kita bisa menggunakan di mana saja sebelum didefinisikan.
Yang ini harus melalui array juga. Itu hanya harus melalui dua array
dan saat kita melewati masing-masing tambahkan ke string yang dihasilkan.
Kita akan membuat beberapa variabel lokal, yang hanya bisa kita gunakan di dalam fungsi
ini, int I dan j.
Dan kemudian kita akan menggunakan perulangan
for untuk menelusuri array. Kita akan mengatakan untuk saya sama dengan 0.
Str sub 1 atau sub saya harus mengatakan tidak
sama dengan terminator nol dan
kemudian juga kenaikan I.
Kami akrab dengan sintaks loop for
kami di mana kami memiliki pengidentifikasi loop sebagai hal pertama.
Sebelum titik koma pertama, kondisi di mana kita melompat sebelum
titik koma kedua dan
kemudian memodifikasi variabel kontrol loop untuk memastikan kita tidak memiliki infinite loop.
Yang kita lakukan di sini adalah kita menyimpan
hasil, sub I sama dengan str satu sub I.
Ingat, ini adalah karakter jadi tidak apa-apa menggunakan tugas yang sama dengan di sini.
Kami tidak dapat melakukan
ini dalam array karakter karena array karakter Anda tidak dapat menetapkan array ke array.
Kita harus menggunakan salinan str.
Jadi itu menyalin string pertama.
Dan sekarang kita ingin menggabungkan string kedua ke hasil,
jadi kita akan melakukan sesuatu yang sangat mirip kecuali kita akan melihat
di array kedua dan kita akan memastikan bahwa kita meletakkannya di tempat yang tepat di hasil.
Jadi kami akan melakukan sesuatu seperti ini. Kami akan pergi dari
j ke nol, str ke j tidak sama dengan terminator nol ++j.
Dan Anda akan melihat hasilnya hanya mengatakan saya ditambah j, jadi apa pun yang saya akhiri.
Jika saya menambahkan sepuluh karakter, sekarang akan
dimulai dari karakter kesepuluh karena berbasis nol, dan hanya akan
menambahkan j ke dalamnya, jadi 10 ditambah 0, 10 ditambah 1 dan seterusnya.
Dan itu saja.
Satu hal terakhir yang harus Anda lakukan yang sangat penting adalah Anda harus menambahkan terminator nol itu.
Jadi kami ingin mengatakan hasil, saya ditambah j dan kemudian
menambahkan satu karakter, terminator nol, yang merupakan
garis miring terbalik nol di dalam tanda kutip tunggal.
Dan itulah fungsi kita.
Kami tidak perlu mengembalikan apa pun dari fungsi
ini karena kami hanya menyalin di str satu ke str dua.
Jadi mari kita uji ini.
Apa yang saya harapkan dapat dilakukan pada yang satu ini adalah mengujinya dengan beberapa karakter.
Kami akan menggunakan karakter yang ada yang kami miliki, dan
kami hanya akan menggabungkan beberapa.
Jadi kita perlu membuat hasil
yang lain. Jadi kami hanya
akan mengatakan hasil hanya untuk menghapusnya.
Di sini, kita akan mengatakan
bahwa kita harus menentukan ukuran untuk yang pertama.
Jadi kita hanya akan menentukan ukuran 50. Kami akan membatasinya.
Jadi karakter konstan ini harus berfungsi.
Sekarang kita hanya akan mengatakan printf,
kita akan mencetak string.
Jadi kita akan mengatakan persen s dan kemudian kita akan mengatakan
concat, itulah yang kami beri nama. Kami akan menyampaikan hasil
dan kemudian kata satu dan kata dua.
Jadi apa yang harus ditampilkan sebagai output,
dan kami akan memastikan bahwa kami meletakkannya di beberapa baris baru.
Ini akan ditampilkan sebagai output Jason oke. Jadi concat sebenarnya tidak mengembalikan data apa pun, jadi
saya tidak bisa memasukkannya langsung ke printf.
Yang harus saya lakukan adalah memanggilnya dan kemudian menampilkan hasilnya.
Jadi di sana kita sebut concat.
Semuanya dimasukkan ke dalam hasil dan kami menampilkan hasilnya.
Jadi sekali lagi ketika kita menjalankan ini, kita akan
melihat Jason baik-baik saja dan kita melakukannya.
Fungsi ketiga yang
ingin kita terapkan adalah fungsi perbandingan untuk memeriksa apakah dua string sama.
Fungsi ini harus mengembalikan boolean.
Jadi kami ingin memasukkan bool standar kami.
Jadi kita bisa menggunakan nilai boolean dan true dan false.
Dan ini sebenarnya akan didefinisikan sebagai string yang sama.
Ini akan mengambil array karakter konstan, s1 dan satu
lagi untuk memeriksa apakah dua
string sama.
Hanya untuk memastikan saya memasukkan tajuk yang benar, saya akan mencoba membuatnya
dan saya pikir saya melakukannya karena sekarang saya dapat menggunakan
kata kunci bool karena saya menyertakan ini dan saya juga dapat menggunakan true false.
Jadi mari kita terapkan string yang sama ini.
Ini akan menjadi hampir
sama hanya melalui array dan memeriksa setiap karakter.
Jadi kita akan membuat
beberapa variabel lokal I sama dengan 0 untuk loop kita yang diinisialisasi 0.
Dalam boolean, itu hanya memberi tahu
kita jika mereka sama karena inilah yang akan kita kembalikan, sesuatu seperti adalah sama. Dan kita sebenarnya bisa menginisialisasi ini ke false.
Apa yang ingin kita lakukan pertama sebenarnya adalah kita ingin mendapatkan hitungan.
Kami ingin melihat seberapa besar
keduanya. Jadi kita dapat memiliki while
loop karena kita memerlukan hitungan untuk melihat ukuran
pada dasarnya hanya untuk memeriksa
penghentian nol itu.
Jadi kita akan berasumsi bahwa string yang kita masukkan memiliki ukuran yang sama.
Jadi kita bisa menulis perulangan while sederhana. Anda juga bisa menulis pernyataan if.
Saya agak memasukkan semuanya ke
dalam loop sementara adalah perbandingan saya dengan menggunakan operator logis.
Anda tidak harus menggunakan operator logika. Anda bisa menggunakan pernyataan if dan hanya
menelusuri keseluruhan string kedua.
Tapi di sini yang saya lakukan adalah saya mengatakan
sementara s1 sub I sama dengan s2 sub
I dan mereka tidak sama dengan terminator nol.
Karena jika mereka sama dengan
terminator nol, kami ingin melompat keluar jika salah satunya adalah terminator nol.
Jadi sekarang kita katakan plus plus I. Dan kemudian hal terakhir yang harus kita lakukan
adalah memeriksa apakah itu terminator nol. Dan jika ya, Anda dapat mengatur variabel boolean
Anda untuk mengembalikan data yang benar.
Jadi di sini kita dapat mengatakan jika s1 sub
I sama dengan terminator nol dan
sub s2 sama dengan terminator nol, atur variabel boolean
kita sama dan kemudian kita ingin mengembalikannya.
Dan kemudian katakan saja pengembaliannya sama.
Dan untuk menguji ini, kita harus menguji string yang baik dan string yang buruk.
Jadi mari kita lanjutkan dan ucapkan string yang sama.
Saya akan mencetak hanya nilai integer dari boolean, jadi persen
d dan kita akan mengatakan string yang sama di sini, ini mengembalikan sesuatu
sehingga kita dapat
menempatkan ini dalam ekspresi print equals string. Saya hanya ingin memastikan string
yang sama
dan kemudian kami akan memberikan Jason koma Jason.
Dan kami akan menyebutnya dan kali
ini kami akan mengatakan Jason.
Dan yang pertama harus mengembalikan satu, kedua untuk mengembalikan
nol, satu mewakili benar, nol mewakili salah.
Ketika kita menjalankan ini, kita melihat satu
dan nol. Satu untuk benar dan nol untuk
salah kecuali sulit dibaca karena kami tidak memiliki umpan baris. Jadi mari kita tambahkan umpan
baris dan hanya untuk menunjukkannya lagi.
Sekarang kita melihat satu nol,
benar salah. Jason Jason setara satu sama lain.
Jason Jason tidak sama.
Jadi ini adalah beberapa fungsi
cepat yang sekarang dapat Anda pelajari, pelajari pada dasarnya tentang array
karakter dan bagaimana string direpresentasikan dengan konsep ini.
Terima kasih. Saya juga akan memberikan file sumbernya, sehingga Anda dapat melihatnya lebih detail.
Semoga ini membantu tugas Anda.