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 :

insertion d un caractere


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut insertion d un caractere
    salut voila mon programme que j ai creer:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    #include<stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    char *insertion(char*Pt_Chaine,int Position,char Caractere)
    {
     
    	char *Pt_debut;
    	char *Pt_copie;
    	Pt_copie=(char*)malloc(100*sizeof(char));	
    	int i=0;
     
        Pt_debut=Pt_copie;
    	int taille =strlen(Pt_Chaine);
    	printf("%d\n",taille);
     
    	printf("%s %d %c\n",Pt_Chaine,Position,Caractere);
     
    	while(i < taille+1)
    	{
    		if (i < Position-1)
    		{
    			*(Pt_copie+i)=*(Pt_Chaine+i);
                printf("cou\n");
                printf("%s\n",&*Pt_copie);
    		}
    		else if (i == Position-1)
    		{
    			*(Pt_copie+i)=Caractere;
    			printf("coucou\n");
    		}
    		else
    		{
    			*(Pt_copie+i)=*(Pt_Chaine+i-1);
                printf("couco\n");
    		}
        printf("%d\n",i);
    	i++;
    	}
    	printf("%s",&*Pt_debut);
    	return ????;
     
     
    }
     
    int main(void)
    {
     
    	char *Pt_Chaine, *Pt_debut,Pt_copie;
    	int Position;
    	char Caractere;
     
    	Pt_Chaine=(char*)malloc(100*sizeof(char));
     
     
    	printf("entrer la chaine\n");
    	gets(Pt_Chaine);
     
    	printf("entrer la position d' insertion du caractere\n");
    	scanf("%d",&Position);
    	getchar();
    	printf("entree le caractere a insere\n");
    	scanf("%c",&Caractere);
     
     
    	insertion(Pt_Chaine,Position,Caractere);
     
    	printf("%s",&*????);
    	free(Pt_Chaine);
    	free(Pt_copie);
    	getch();
    }
    ce programme doit me permettre d inserer une lettre dans une chaine de caractere a une position que je definie.
    je ne comprends pas pourqoi le programme ne marche pas car le prog ne rentre pas dans le while.

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char *Pt_copie;
    ....
    *(Pt_copie+i)=*(Pt_Chaine+i);
    Aucune place n'a été allouée pour mettre les caractères -> Plantage
    Sauf erreur, Pt_debut n'est pas initialisé et contient n'importe quoi

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    merci je n avait pas vu j ai fait ce que tu as dit me voila sue doit retourner mon return et doit imprime mon printf.

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    freeman43
    merci je n avait pas vu j ai fait ce que tu as dit me voila sue doit retourner mon return et doit imprime mon printf
    Qu'est ce que ça peut bien vouloir dire ????

  5. #5
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par freeman43
    merci je n avait pas vu j ai fait ce que tu as dit me voila sue doit retourner mon return et doit imprime mon printf.
    Extraordinaire !! Tu as mélangé les touches de ton clavier ?

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Bah c'est une très mauvaise solution. La fonction appelée ne devrait pas faire des allocations mémoires.

    C'est la fonction appelante qui doit avoir une idée du traitement afin de simplifier le traitement dans la fonction appelée.

    Salut.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par dj.motte
    Bah c'est une très mauvaise solution. La fonction appelée ne devrait pas faire des allocations mémoires.

    C'est la fonction appelante qui doit avoir une idée du traitement afin de simplifier le traitement dans la fonction appelée.

    Salut.
    Très mauvaise solution en C... Non conforme à la pratique et à la Standard Library.

    Le traitement se fait là ou il est censé se faire.. Et la fonction retournera la nouvelle chaîne. Y compris éventuellement en libérant ou remplaçant l'ancienne..

Discussions similaires

  1. [DOM] insertion d'un caractere en cours de frappe avec DOM
    Par alex68 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/06/2007, 17h26
  2. Select et insert avec des caracteres speciaux (quote ')
    Par Paco75 dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/10/2006, 14h59
  3. [8i ou 9i] pb d'INSERT avec le caractere "&"
    Par booth dans le forum Oracle
    Réponses: 1
    Dernier message: 05/10/2006, 16h54
  4. Réponses: 24
    Dernier message: 31/05/2005, 15h07
  5. insertion caracteres speciaux html
    Par arcane dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/09/2003, 14h16

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