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

C_str Discussion :

Présentation du projet


Sujet :

C_str

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut Présentation du projet
    Aperçu

    Bibliothèque de gestion de chaînes de caractères pour le langage C. Cette bibliothèque ressemble à ce qu'on trouve dans les langages de plus haut niveau et essentiellement orientés objets comme par exemple, Java, C++, C#, Python. C_Str a été créée pour rassembler ces diverses fonctions en une seule et unique bibliothèque. C_Str est basée sur un objet (du même nom) qui est une structure opaque pour plus de sécurité quant à la manipulation de la mémoire qui ne se fait qu'en interne. L'objet garde une trace de la mémoire utilisée et de la taille de la chaîne qu'il contient et toute la gestion de la mémoire se fait en interne ce qui permet d'éviter les dépassement (buffer overflow).

    Avec plus de 60 fonctions, C_Str est une bibliothèque très complète qui permet de copier, découper, remplacer du texte ainsi que de charger du texte depuis et vers des fichiers très simplement.

    C_Str est disponible sous la forme d'une bibliothèque dynamique (*.dll, *.so).


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !
      0  0

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Voici la liste des fonctions disponibles à la version 3.1.0 (hors macros) :

    Légende
    • Fonction qui va changer à la prochaine mise à jour
    • Fonction qui n'existera plus à la prochaine mise à jour
    • Nouvelle fonction
    • Fonction mise à jour mais qui reste compatible
    • -> Cette fonction ne sera plus compatible avec l'ancienne version

    • C_Str_get_id
    • C_Str_get_version
    • C_Str_get_version_major
    • C_Str_get_version_minor
    • C_Str_get_version_revision
    • C_Str_new
    • C_Str_new_len
    • C_Str_new_with_text
    • C_Str_new_from_file
    • C_Str_new_from_sub_string
    • C_Str_new_from_sub_string_obj
    • C_Str_destroy
    • C_Str_buffer_new
    • C_Str_buffer_get_first
    • C_Str_buffer_get_last
    • C_Str_buffer_get_prev
    • C_Str_buffer_get_next
    • C_Str_buffer_get_index
    • C_Str_buffer_len
    • C_Str_buffer_prepend
    • C_Str_buffer_append
    • C_Str_buffer_remove_index
    • C_Str_buffer_destroy
    • C_Str_buffer_foreach
    • C_Str_buffer_write_to_file
    • C_Str_buffer_get_error
    • C_Str_write_to_file
    • C_Str_get_error
    • C_Str_access_to_generic_buff
    • C_Str_get
    • C_Str_get_new_string
    • C_Str_len
    • C_Str_is_empty
    • C_Str_cat_with_str
    • C_Str_cat
    • C_Str_nth_to_upper
    • C_Str_nth_to_lower
    • C_Str_to_upper
    • C_Str_to_lower
    • C_Str_capitalize
    • C_Str_swap_case
    • C_Str_lstrip
    • C_Str_rstrip
    • C_Str_strip
    • C_Str_replace_string
    • C_Str_replace_letter
    • C_Str_index
    • C_Str_r_index
    • C_Str_char_at
    • C_Str_nth_string_copy
    • C_Str_nth_string_copy_obj
    • C_Str_string_copy
    • C_Str_string_copy_obj
    • C_Str_cut
    • C_Str_how_much_letter
    • C_Str_how_much_word
    • C_Str_is_word_in_string
    • C_Str_is_letter_in_string
    • C_Str_sub_string
    • C_Str_sub_string_obj
    • C_Str_sub_string_by_val
    • C_Str_split
    • C_Str_split_lines
    • C_Str_free_split_tab
    • C_Str_compare_ignore_case
    • C_Str_compare_ignore_case_obj
    • C_Str_compare
    • C_Str_compare_obj
    • C_Str_compare_to_object
    • C_Str_clear
    • C_Str_fill
    • C_Str_n_fill
    • C_Str_start_with
    • C_Str_start_with_obj
    • C_Str_end_with
    • C_Str_end_with_obj
    • C_Str_reverse
    • C_Str_clone
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !
      0  0

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut Exemples de codes
    Un exemple basique:
    Code C : 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
    #include "c_str.h"
     
    int main (void)
    {
       C_Str * my_str = C_Str_new_with_text ("Bonjour, le monde !");
     
       if (my_str)
       {
          printf ("%s\n", C_Str_get (my_str));
     
          if (C_Str_replace_string (my_str, 0, 6, "Salut"))
             printf ("%s\n", C_Str_get (my_str));
     
          C_Str_destroy (& my_str);
       }
     
       return EXIT_SUCCESS;
    }
    La sortie:
    Bonjour, le monde !
    Salut, le monde !
    Exemple d'utilisation d'un C_Str_buffer avec la fonction C_Str_plit_lines:
    Code C : 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
    20
    21
    22
    23
    24
    25
    26
    27
    #include <stdio.h>
    #include <stdlib.h>
     
    #include "c_str.h"
     
     
    void cb (void * p_data, void * p_user_data)
    {
       (void)p_user_data;
       printf ("%s", C_Str_get ((C_Str *)p_data));
    }
     
    int main (void)
    {
       C_Str * str = C_Str_new_from_file ("main.c");
       C_Str_buffer * buff = C_Str_split_lines (str, false);
     
       if (str && buff)
       {
          C_Str_buffer_foreach(cb, buff, NULL);
     
          C_Str_buffer_destroy (&buff);
          C_Str_destroy (&str);
       }
     
       return EXIT_SUCCESS;
    }

    Exemple de parcours d'un C_Str_buffer sans la fonction C_Str_buffer_foreach:
    Code C : 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
    20
    21
    22
    23
    24
    25
    26
    #include <stdio.h>
    #include <stdlib.h>
     
    #include "c_str.h"
     
     
    int main (void)
    {
       C_Str * str = C_Str_new_from_file ("main.c");
       C_Str_buffer * buff = C_Str_split_lines (str, false);
     
       if (str && buff)
       {
          C_Str * tmp = C_Str_buffer_get_first (buff);
          while (tmp != NULL)
          {
             printf ("%s", C_Str_get (tmp));
             tmp = C_Str_buffer_get_next (tmp);
          }
     
          C_Str_buffer_destroy (&buff);
          C_Str_destroy (&str);
       }
     
       return EXIT_SUCCESS;
    }
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !
      0  0

Discussions similaires

  1. Présentation du projet
    Par Baptiste Wicht dans le forum JTheque
    Réponses: 4
    Dernier message: 31/05/2009, 21h47
  2. [BTS IG] Présentation de projet MySQL
    Par zyriuse dans le forum Débuter
    Réponses: 4
    Dernier message: 25/11/2007, 21h28
  3. présentation et projet
    Par blaise_laporte dans le forum Apple
    Réponses: 14
    Dernier message: 24/06/2007, 00h21
  4. Présentation du projet "Try"
    Par gunwolf dans le forum Projets
    Réponses: 5
    Dernier message: 21/02/2007, 13h07

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