Akses rentetan yang terkandung dalam kepingan

王林
Lepaskan: 2024-02-10 20:00:19
ke hadapan
1155 orang telah melayarinya

Akses rentetan yang terkandung dalam kepingan

editor php Xiaoxin di sini untuk memperkenalkan cara mengakses rentetan yang terkandung dalam kepingan. Dalam PHP, penghirisan merujuk kepada operasi memintas sebahagian daripada aksara daripada rentetan. Dengan mengakses rentetan dalam kepingan, kami boleh mendapatkan data yang diperlukan atau melakukan operasi lain. Apabila menggunakan penghirisan, kita perlu menentukan kedudukan permulaan dan kedudukan penamat untuk mendapatkan rentetan yang sepadan. Menguasai penggunaan kepingan akan membawa kemudahan besar kepada kerja pembangunan kami. Seterusnya, mari belajar secara terperinci cara mengakses rentetan yang terkandung dalam kepingan!

Kandungan soalan

Saya sedang melakukan beberapa latihan pengekodan untuk memahami dengan lebih baik. Latihan yang diberikan mengarahkan saya untuk mencipta program yang menerima input pengguna seperti berikut:

  • Baris pertama menentukan bilangan rentetan yang akan disediakan sebagai input pada baris berasingan
  • N baris seterusnya adalah setiap satu rentetan

Saya ingin mengeluarkan aksara yang sepadan dengan indeks genap dan ganjil bagi setiap rentetan, dipisahkan oleh ruang dan dengan setiap rentetan pada baris yang berasingan.

Contoh input:

2
foo_bar
fizz_buzz
Salin selepas log masuk

seharusnya mengeluarkan:

fobr o_a
fz_uz izbz
Salin selepas log masuk

Tetapi mengakses kepingan rentetan dalam program saya mengembalikan rentetan kosong:

package main

import (
    "fmt"
)

func main() {
    // read an integer describing how many strings will be input
    var num_strings int
    fmt.scan(&num_strings)

    // create a slice of strings to hold provided strings
    strings := make([]string, num_strings)

    // add provided strings to slice
    for i := 0; i < num_strings; i++ {
        var temp string
        fmt.scan(&temp)
        strings = append(strings, temp)
    }

    // check that strings have been appended
    fmt.println("strings:", strings)

    // check that strings can be accessed
    for i := 0; i < num_strings; i++ {
        fmt.println(i, strings[i]) // only i prints, not strings[i]
    }

    // loop over all strings
    for i := 0; i < num_strings; i++ {

        // if string index is even print the char
        for index, val := range strings[i] {
            if index%2 == 0 {
                fmt.print(val)
            }
        }

        fmt.print(" ")

        // if string index is odd print the char
        for index, val := range strings[i] {
            if index%2 != 0 {
                fmt.print(val)
            }
        }

        // newline for next string
        fmt.print("\n")
    }
}
Salin selepas log masuk
2
foo_bar
fizz_buzz
Strings: [  foo_bar fizz_buzz]
0 
1
Salin selepas log masuk

Penyelesaian

Kerana apabila anda make strings menghiris, anda sedang mencipta kepingan dengan kapasiti dan panjang daripada n. Oleh itu, apabila anda menambahnya, anda menambah panjang kepingan:

Tukar kod ini:

// create a slice of strings to hold provided strings
strings := make([]string, num_strings)

// add provided strings to slice
for i := 0; i < num_strings; i++ {
  var temp string
  fmt.scan(&temp)
  strings = append(strings, temp)
}
Salin selepas log masuk

Kepada:

// create a slice of strings to hold provided strings
strings := []{}

// add provided strings to slice
for i := 0; i < num_strings; i++ {
  var temp string
  fmt.scan(&temp)
  strings = append(strings, temp)
}
Salin selepas log masuk

atau

// create a slice of strings to hold provided strings
strings := make([]string, num_strings)

// add provided strings to slice
for i := 0; i < num_strings; i++ {
  var temp string
  fmt.Scan(&temp)
  strings[i] = temp
}
Salin selepas log masuk

Anda harus berada pada tingkah laku terbaik anda.

Atas ialah kandungan terperinci Akses rentetan yang terkandung dalam kepingan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!