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 Discussion :

casser une chaine de caractere en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 139
    Par défaut casser une chaine de caractere en C
    Bonjour,

    Voila mon probleme j'aimerais réussir à découper une chaine de caractere en deux autres sous chaines
    exemple:
    j ai ma chaine qui contient : "712 67"
    et j'aimerais ensuite avoir deux variables l'une contenant 712 et l'autre 67
    j'ai essayer de faire ce sous programme:

    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
    20
    21
    22
    void extraire_sommet_arcs(char *chaine,int *nbsommets,int *nbarcs)
    {
    	char nbarcs_c[TAILLE_MAX] = "";
    	char nbsommets_c[TAILLE_MAX] = "";
    	int trouve_nbsommets=0,i=0;
    	while((chaine[i]!='/0') && (chaine[i]!='/n')){
    		if(chaine[i]==' ')
    		{
    			trouve_nbsommets=1;
    		}
    		if(trouve_nbsommets==0)
    		{
    			nbsommets_c[i]=chaine[i];
     
    		}
    		else
    		{
    			nbarcs_c[i]=chaine[i];
    		}		
    	i++;
    	}
    }
    mais ca ne fonctionne pas. il me dit :"projetgraphe.c:23:20: attention : constante caractère multi-caractères
    projetgraphe.c: Dans la fonction «extraire_sommet_arcs» :
    projetgraphe.c:23: attention : comparaison est toujours vraie en raison d'une gamme limitée de type de données
    projetgraphe.c:23:41: attention : constante caractère multi-caractères
    projetgraphe.c:23: attention : comparaison est toujours vraie en raison d'une gamme limitée de type de données
    "

    pourquoi ca ne fonctionne pas? et sinon existe t'il une fonction en C string.h qui fait deja ce travail?

    merci

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while((chaine[i]!='/0') && (chaine[i]!='/n')){
    Confusion entre / et \
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* avec \0 et \n, les warnings disparaissent */
    while((chaine[i]!='\0') && (chaine[i]!='\n')){

  3. #3
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    Si le but est de récupérer les deux valeurs puis les convertir en entiers c'est directe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    const char* buffer = "100 78";
    int a, b, guard;
     
    guard = sscanf (buffer, "%d %d", &a, &b);
    if (guard == 2) /*conversion réussie*/
    {
              /*
                  ici on a:
                    a = 100
                    b = 78
              */
    }
    Compil your life guy!
    The Aures Project

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. Réponses: 5
    Dernier message: 21/07/2004, 19h34
  3. Extraire un nom d'une chaine de caractere
    Par iamspacy dans le forum Linux
    Réponses: 4
    Dernier message: 03/05/2004, 21h34
  4. Réponses: 2
    Dernier message: 30/03/2004, 11h31
  5. Controler une chaine de caracteres ou d'entiers?
    Par Le druide dans le forum C
    Réponses: 6
    Dernier message: 25/09/2003, 08h48

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