Maison > développement back-end > Golang > le corps du texte

Accéder à la chaîne contenue dans une tranche

王林
Libérer: 2024-02-10 20:00:19
avant
1155 Les gens l'ont consulté

Accéder à la chaîne contenue dans une tranche

l'éditeur php Xiaoxin est là pour vous présenter comment accéder à la chaîne contenue dans la tranche. En PHP, le slicing fait référence à l'opération consistant à intercepter une partie des caractères d'une chaîne. En accédant aux chaînes de la tranche, nous pouvons obtenir les données requises ou effectuer d'autres opérations. Lors de l'utilisation du découpage, nous devons spécifier la position de départ et la position de fin pour obtenir la chaîne correspondante. Maîtriser l'utilisation des tranches apportera une grande commodité à notre travail de développement. Ensuite, apprenons en détail comment accéder à la chaîne contenue dans la tranche !

Contenu des questions

Je fais quelques exercices de codage pour mieux comprendre. L'exercice donné me demande de créer un programme qui accepte les entrées de l'utilisateur comme suit :

  • La première ligne spécifie combien de chaînes seront fournies en entrée sur des lignes distinctes
  • Les n lignes suivantes sont chacune une seule chaîne

Je souhaite afficher les caractères correspondant aux indices pairs et impairs de chaque chaîne, séparés par des espaces, et avec chaque chaîne sur une ligne distincte.

Exemple de saisie :

2
foo_bar
fizz_buzz
Copier après la connexion

devrait afficher :

fobr o_a
fz_uz izbz
Copier après la connexion

Mais accéder à la tranche de chaîne dans mon programme renvoie une chaîne vide :

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")
    }
}
Copier après la connexion
2
foo_bar
fizz_buzz
Strings: [  foo_bar fizz_buzz]
0 
1
Copier après la connexion

Solution de contournement

Parce que lorsque vous make stringstranchez, vous créez une tranche dont la capacité et la longueur sont n. Ainsi, lorsque vous y ajoutez, vous augmentez la longueur de la tranche :

Changez ce code :

// 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)
}
Copier après la connexion

À :

// 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)
}
Copier après la connexion

ou

// 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
}
Copier après la connexion

Vous devez adopter votre meilleur comportement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!