IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

module qui retourne une sous chaine


Sujet :

Caml

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Points : 7
    Points
    7
    Par défaut module qui retourne une sous chaine
    Bonjour,

    je veux réaliser un module ocaml qui étant donné un indice et un caractère retourne la sous chaine comme suit
    subSTR "bonjour, le, monde" ',' 2 retourne monde
    j'ai pensé à utiliser le module sub mais je bloque sur la manière de trouver la taille ou je m’arrête, je vois que je peux genre essayer de trouver le caractère suivant egal celui donné ou la fin de la chaine mais j'arrive pas à faire un code pour cela, j'ai besoin d'aide ou des propositions, Merci d'avance (excusez ma question de debutant)

  2. #2
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut fonction caml qui retourne le mot ième mot d'une chaîne avec charactère séparateur
    voici une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    let substring_of_string_of_character_of_integer str cha idx =
      let len = String.length str in
     
      let rec loop accu i =
        if i >= len then "" :: accu else
        try
          let j = String.index_from str i cha in
          loop (String.sub str i (j - i) :: accu) (j + 1)
        with Not_found ->
          String.sub str i (len - i) :: accu 
      in
      let str_l = List.rev (loop [] 0) 
      in
     
      let word_l = List.filter (fun s -> s <> "") str_l in
      String.trim (List.nth word_l idx)
    ;;
    let str = substring_of_string_of_character_of_integer "bonjour, le, monde" ',' 2;;
    str;;
    - : string = "monde"

  3. #3
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 135
    Points : 283
    Points
    283
    Billets dans le blog
    1
    Par défaut
    Ou une autre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    let nth_substr_delim s delim n =
        List.nth (Str.split (Str.regexp delim) s)      
        n;;

Discussions similaires

  1. fonction qui retourne une chaine de caracteres
    Par pyrrhias dans le forum Débuter
    Réponses: 3
    Dernier message: 20/01/2009, 10h49
  2. suprimmer une sous chaine qui se repete!
    Par moon5 dans le forum Langage
    Réponses: 6
    Dernier message: 23/08/2007, 16h49
  3. Réponses: 9
    Dernier message: 08/08/2007, 11h35
  4. Réponses: 23
    Dernier message: 13/11/2006, 03h33
  5. main() qui retourne une chaine
    Par lejert dans le forum C
    Réponses: 5
    Dernier message: 19/07/2006, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo