Halo dan selamat datang. Dalam kuliah ini, saya
akan memberikan demonstrasi solusi untuk tantangan kita sebelumnya.
Saya akan membahas bagaimana kita
dapat membalikkan karakter dalam sebuah string menggunakan
fungsi str length dan juga melalui pengurutan string
menggunakan str compare dan juga str copy
serta menggunakan algoritma bubble.
Mari kita memunculkan blok kode.
Dan saya hanya akan membuat satu program yang saya pikir untuk ini. Saya sebutkan dalam tantangan
bahwa Anda membuat dua program.
Tapi untuk kesederhanaan dan demonstrasi, saya hanya akan membuat satu saja.
Buat
proyek, saya hanya akan
menamainya fungsi string atau variasinya.
Sebut saja contoh fungsi string
umum.
Jadi mari kita mulai dengan kebalikannya. Kebalikannya bisa berjalan pada fungsinya sendiri atau
kita bisa meletakkannya di main. Aku akan meletakkannya di utama.
Jadi hal pertama yang ingin saya lakukan adalah membuat -- well, hal pertama yang
ingin saya lakukan sebenarnya adalah saya ingin menyertakan file header yang benar sehingga saya dapat menggunakan
fungsi string ini, yang merupakan string sertakan saya. H.
Di sinilah ia berisi semua fungsi string yang bagus.
Sekarang saya akan membuat array karakter. Saya akan membuatnya menjadi ukuran 100.
Itu hanya sewenang-wenang, hanya
tidak akan dapat menyimpan barang-barang yang lebih besar dari 100.
Saya akan membuat beberapa variabel lokal yang
akan membantu saya dalam penguraian. Dan yang ingin saya lakukan adalah saya
ingin menampilkan beberapa output terlebih dahulu kepada pengguna.
Jadi saya hanya akan mengatakan beberapa
baris feed, mencetak
individu, karakter individu dari string dan urutan terbalik.
Itu akan memberi tahu pengguna apa yang terjadi dan kemudian juga
mencetak hanya untuk membuatnya lebih jelas,
cukup cetak sesuatu seperti itu, jadi lebih mudah dibaca.
Aku akan mengatakan masukan string. Aku akan membaca di string.
Dan kemudian aku akan menyimpan string.
Jadi saya akan
mengatakan scanf, present s dan saya akan mengatakan str.
Dan saya tidak perlu melewati ampersand untuk membacanya.
Lalu aku akan mendapatkan panjang string. Saya akan memasukkannya ke dalam variabel lokal l saya.
Jadi saya dapat memanggil tautan str hanya dengan mengatakan panjang str yang melewati string,
dan itu mengembalikan berapa banyak karakter dalam string itu. Sangat, sangat mudah.
Dan kemudian saya akan mencetak sesuatu untuk memberitahu mereka bahwa karakter dalam urutan terbalik.
Jadi karakter string terbalik r
garis miring terbalik n.
Lalu saya akan menulis sedikit untuk loop yang
melewati array saya dan menurut panjangnya dan hanya membalikkannya.
Jadi saya akan mengatakan untuk saya sama dengan l.
Jadi saya akan mundur dalam array string
yang sebenarnya. Saya akan memulai di akhir dan maju.
Dan katakan saya lebih besar dari atau sama
dengan 0 dan saya dikurangi minus. Dan Anda perhatikan saya tidak perlu melihat
karakter penghentian nol ketika saya melakukannya dengan cara ini.
Lalu saya hanya akan mencetak setiap karakter saat saya menemukannya.
Untuk mencetak karakter dan melihat Anda hanya melakukan persen c.
Dan lakukan saja dan katakan str sub-I.
Dan itu pada dasarnya.
Dan kemudian saya hanya akan mencetak baris baru.
Dan sebenarnya saya akan mencetak banyak hal hanya untuk mengakhirinya, banyak
tanda hubung.
Mari kita lihat apakah itu berhasil, sangat mudah yang ini sebenarnya
sebagaimana mestinya, untuk mendapatkan panjangnya seharusnya tidak sulit.
Dan saya lupa umpan baris, jadi mari kita perbaiki itu.
Jadi di sini dikatakan cetak karakter individual dari string terbalik atau masukkan string.
Sekarang scanf, itu hanya akan membaca. Jadi jika saya memasuki ruang Jason Feden.
Scanf hanya akan membaca sampai Jason dan ruang.
Anda ingin menggunakan fungsi lain seperti f get s jika Anda ingin membaca semuanya.
Jadi apa yang akan dilakukan ini hanya akan membalikkan Jason print
out nosaj, yang memang benar. Karakter dari string reverse adalah nosaj.
Itu cukup sederhana, bukan fungsi atau implementasi yang
sangat rumit.
Sekarang mari kita coba dengan menyortir string.
Dan sekarang saya akan melakukan sesuatu. Dan saya akan melakukannya di bagian utama saya kira hanya untuk saat ini.
Saya seharusnya menempatkan ini dalam fungsi yang sebenarnya, tetapi kami
tidak mendemonstrasikan fungsi dalam kuliah ini, kami mendemonstrasikan string.
Jadi mari kita buat beberapa variabel lokal lagi yang akan kita perlukan.
Terutama, kita akan membuat nama.
Dan dalam kasus ini,
saya akan membuat array string. Kami akan membuat array string, dan kami akan menggunakan f get s.
Saya akan membuat array string. Jadi ini terlihat seperti
array dua dimensi.
Jadi yang kami lakukan di sini adalah membuat 25 string berukuran 50.
Lalu saya juga akan membuat satu lagi hanya 25, ini akan
berisi setiap string.
Dan kemudian saya akan menambahkan
dua variabel lagi. Saya akan menambahkan n dan j.
Dan setelah kita melakukan kebalikannya, saya akan mencetaknya.
Pesan lain untuk
mengatakan apa yang kami
lakukan mengurutkan string array menggunakan bubble sort.
Saya tidak akan menjelaskan bubble sort kepada Anda. Karena sekali lagi, itu hanya algoritma yang tidak relevan
dengan apa yang kami lakukan. Sungguh, itu hanya cara untuk menyortir.
Ini adalah salah satu jenis yang paling mudah sebenarnya karena Anda hanya bertukar pada dasarnya.
Tapi yang ingin kita lakukan adalah pertama-tama kita ingin mendapatkan berapa banyak string yang akan mereka masukkan. Jadi kita akan mengatakan
printf memasukkan jumlah
string, dan kemudian kita akan mengatakan scanf.
Scanf dapat digunakan di sini karena hanya berupa angka.
Kami akan mengatakan persen d, dan kami akan menyimpannya di variabel lokal kami n.
Sekali lagi, saya tahu saya tidak menggunakan nama
besar di sini, tetapi saya menunjukkan sesuatu. Karena itu, kita harus melewati ampersand.
Lalu saya akan meminta mereka untuk memasukkan string.
Jadi di sini
saya akan mengatakan input
string 1 2 atau 3 diikuti dengan line feed.
Ini hanya nomor yang harus mereka masukkan.
Tali satu, tali dua atau tali tiga.
Kemudian saya benar-benar akan memiliki loop yang melewati dan mendapatkan input.
Jadi di sini saya akan mengatakan untuk saya sama dengan
0, saya kurang dari sama dengan n untuk berapa banyak string yang
ingin mereka masukkan dan saya plus plus atau plus plus I.
Di sini saya akan benar-benar membaca string, dan saya akan menggunakan cara berbeda untuk
membaca - saya berpikir untuk menggunakan f get s, sehingga
Anda bisa memasukkan string yang memiliki spasi. Tapi saya rasa kami tidak membutuhkannya.
Kami melakukan scan
f, dan kami akan membaca scanf ke dalam array
nama kami.
Ingat, kami memiliki nama dan ini adalah string string yang pada dasarnya
terdiri dari 25 karakter.
50 karakter 25 kata.
Jadi jumlah kata maksimal yang bisa Anda masukkan adalah 25.
Jadi kita akan menyimpan ini
dalam array nama kita. Jadi kita hanya akan mengatakan scanf.
Kita akan membaca dalam sebuah string, dan kita akan memasukkannya ke
dalam nama sub I.
Jadi kami menyimpan array kami, kami hanya dapat menyimpan hingga 25.
Sekarang kita sudah selesai dengan loop kita dan sekarang kita bisa menulis bubble sort kita.
Jadi bubble sort kami, saya tidak akan menjelaskan kepada Anda, saya hanya akan memberitahu Anda bahwa itu
adalah algoritma yang cukup sederhana yang memiliki loop dalam.
Jadi Anda memiliki for loop yang melewati, I sama dengan 1
melalui semua string.
Dan kemudian di loop dalam Anda, Anda beralih dari nol ke
semua string dikurangi satu. Dan Anda membandingkan string pertama itu dengan semua string lainnya.
Dan pada dasarnya Anda menggelembungkannya. Tapi yang penting
di sini adalah fungsi str compare.
Biarkan saya mencoba untuk mendapatkan lekukan ini
dengan benar di fungsi salin str, ini benar-benar yang penting.
Anda akan melihat saya tidak memiliki tanda kurung akhir untuk keempatnya karena
mereka memiliki pernyataan tunggal.
Meskipun this if memiliki sesuatu dalam tubuh if-nya, ini hanya satu pernyataan.
Jadi kita mulai dari membandingkan setiap kata dengan setiap kata lainnya
pada dasarnya setelah kita membandingkan satu sebelumnya.
Jadi kita katakan jika str membandingkan nama sub j
dan nama sub j sub satu, maka
str membandingkan membutuhkan dua argumen,
dua array karakter, pointer
karakter benar-benar.
Dan jika mereka sama, itu akan kembali nol.
Jika parameter pertama kurang dari
parameter kedua, itu akan kembali
kurang dari nol.
Dan jika parameter pertama lebih besar dari parameter kedua,
itu akan kembali lebih besar dari nol, satu.
Jadi maksudnya adalah jika string pertama lebih besar dari string kedua, maka
kami ingin menukar semuanya. Dan itulah mengapa kami memiliki suhu itu.
Temp sebenarnya menyimpan string sementara temp.
Jadi kita masukkan nama temp sub j dan
kemudian kita tukar nama sub j dengan nama j plus satu.
Begitulah cara kerja bubble sort. Sekali lagi, yang penting di sini adalah str compare dan str copy.
Dan jika Anda aman, Anda ingin menggunakan strn compare.
Dan ketika Anda melakukan strn membandingkan. Nah, sebenarnya strn membandingkan,
Anda tidak peduli karena itu hanya jika Anda ingin membandingkan awalan.
Untuk str copy, Anda sebenarnya ingin menggunakan strn copy.
Dan parameter ketiga itulah yang penting.
Jadi salin strn, Anda hanya ingin memastikan Anda tidak menyalin lebih
dari ukuran temp, minus satu karena jika tidak, Anda memiliki buffer overflow.
Jadi Anda akan melakukan semua ini, Anda juga dapat menggunakan
-- jika itu bukan buffer karakter, Anda mungkin ingin menggunakan str
length jika itu adalah sebuah pointer. Tetapi ukuran akan bekerja dengan baik untuk ini.
Dan sekali lagi, ini akan menghilangkan buffer overruns.
Jadi selalu lebih aman untuk menggunakan salinan strn
dan satu karena kami memiliki terminator nol yang harus digunakan di akhir.
Jadi di sini hanya tujuan sumber untuk salinan strn.
Kami menyalin nama sub j ke temp dan sama dengan nama j plus
satu dan nama sub j. Dan terakhir, temp menjadi nama sub
j plus satu. Dan saya
sebenarnya harus memperbarui variabel-variabel ini karena mereka
salah karena selalu harus menjadi sumbernya. Jadi beri nama di sini nama sub j.
Dan yang terakhir adalah nama
j ditambah satu, j ditambah satu.
Jadi itu strn copy dan str compare, fungsi yang sangat mudah digunakan.
Setelah kami menyortirnya, kami hanya ingin mencetaknya.
Jadi kami ingin mengatakan bahwa string muncul setelah pengurutan,
memasukkannya ke dalam
umpan baris dan kemudian melalui satu
lingkaran
untuk mencetak semua string dalam array kami.
Jadi kita katakan 4 I sama dengan 0.
I kurang dari atau sama dengan n karena n mewakili
berapa banyak string yang kita urutkan dan masukkan.
Kemudian kami hanya ingin menelusuri string array string kami.
Jadi kami ingin mengucapkan umpan baris
printf dan nama sub I.
Jadi nama sub I sebenarnya adalah array terurut kami, itu sebabnya kami memiliki
nama nama sub I.
Meskipun kami tidak memiliki yang kedua karena itu mewakili ukuran setiap karakter.
25 kata dari 50 maks.
Jadi mari kita lihat apakah ini berhasil.
Bangun, mendapat beberapa pesan karena saya tidak tahu cara mengeja.
Dan jika kita menjalankan ini. Kami pertama-tama akan menjalankan fungsi kebalikan kami sehingga Anda
dapat melihatnya lagi karena kami termasuk dalam program yang sama.
Katakan Fedin dan idf itu bagus.
Masukkan jumlah string yang ingin kita urutkan. Katakanlah lima, katakanlah
zzzz saja biar jelas, kira-kira seperti
itu.
Saya sedikit kacau di sana, tapi sepertinya sudah beres, a b d f r z.
Jadi itu berhasil. Saya memiliki satu
bug karena input string persen d.
Saya memasukkan jumlah string dalam n dan kemudian saya mengatakan kurang dari
sama, saya hanya harus mengatakan kurang dari.
Jadi mari kita jalankan lagi hanya untuk mendemonstrasikannya, tetapi saya harus membangunnya.
Jangan lupa untuk membangun setelah Anda mengubah banyak hal.
Sekali lagi, kami hanya akan mengatakan apa pun di sini dan
kemudian nomor string. Mari
kita lakukan empat.
Jadi mereka menyusunnya menurut abjad dan mengatakan d e l z, jadi terlihat bagus.
Jadi Anda pasti dapat meningkatkan kode ini di mana Anda ingin meletakkan
semuanya dalam fungsi, membuatnya lebih modular. Tapi apa yang saya coba selesaikan dengan tugas
ini adalah bagaimana Anda menggunakan str compare, bagaimana Anda menggunakan strn copy dan bagaimana
Anda bisa menggunakan str length.
Anda juga harus bermain-main dengan str
cat, strn cat dan itulah fungsi umum lainnya.
Anda mungkin ingin bermain-main dengan strstr, strchar untuk mencari. Itu benar-benar bagus
atau itu, atas, bawah untuk memeriksa karakter, atau
fungsi konversi atoi nad atof.
Terima kasih. Saya harap ini membantu.