begin process at 2012 02 08 09:06:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caractères

 > TRI DE LIGNE (ORDE CHOISIT)

TRI DE LIGNE (ORDE CHOISIT)


 Description

ben le titre l'explique un peu,enfait c'etait a titre purement academique rien de special donc !

Source

  • #include <stdio.h>
  • #include <conio.h>
  • #include <string.h>
  • #define max 100
  • struct ligne {
  • char l[max];
  • } ;
  • int main () {
  • struct ligne parag[max];
  • char a,prior[27]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
  • void priority (char *);
  • void saisie (struct ligne * parag);
  • void tri (struct ligne * parag,char *);
  • void affichage (struct ligne * parag);
  • printf("voulez vous changer l'ordre de priorite o/n\n(l'ordre alphabetique par default)");
  • a=getch();
  • printf("\n");
  • if (a=='o')
  • priority(prior);
  • saisie(parag);
  • flushall();
  • tri(parag,prior);
  • affichage(parag);
  • getch();
  • return 0;
  • }
  • /*********************priority********************************/
  • void priority (char * tab) {
  • int i=0,k;
  • char c;
  • printf("\n\nentrez sucsessivement l'ordre souhaite du tri :\n\n");
  • for (;i<=25;i++)
  • {
  • do
  • {
  • c=getche();
  • k=0;
  • while ((k<=i-1)&&(*(tab+k)!=c))
  • k++;
  • if (*(tab+k)==c)
  • printf("\b\a");
  • } while (*(tab+k)==c);
  • printf(" ");
  • *(tab+i)=c;
  • } printf("\n\n");
  • }
  • /******************************end priority*******************/
  • /*********************saisie**********************************/
  • void saisie (struct ligne * tab) {
  • char c[max];
  • int i=0;
  • printf("\n\nentrer votre paragrephe chaque fois que vous terminer une\n");
  • printf("ligne apuier sur entre,pour terminer la saisie enter une ligne vide\n");
  • printf("\n\n**************************************\n\n");
  • do
  • {
  • gets(c);
  • strcpy((tab+i)->l,c);
  • i++;
  • }
  • while ((c[0]!='\0')||(i==max));
  • printf("******************************************\n\n");
  • }
  • /*****************************end saisie************************/
  • /*******************************tri*****************************/
  • void tri (struct ligne * tab,char * pri) {
  • char c[max];
  • int i=0,j,min,g=0,k=0;
  • while (*(tab+i+1)->l!='\0')
  • {
  • min=i;
  • j=i+1;
  • while (*(tab+j)->l!='\0')
  • {
  • g=0;
  • k=0;
  • while ((g==0)&&(k<27))
  • {
  • if (*(tab+j)->l==*(pri+k))
  • g=1;
  • if (*(tab+min)->l==*(pri+k))
  • g=-1;
  • k++;
  • }
  • if (g>0)
  • min=j;
  • j++;
  • }
  • strcpy(c,(tab+i)->l);
  • strcpy((tab+i)->l,(tab+min)->l);
  • strcpy((tab+min)->l,c);
  • i++;
  • }
  • }
  • /*************************end tri********************************/
  • /***************************affichage****************************/
  • void affichage (struct ligne * tab) {
  • int i=0;
  • printf("\n\n************le paragaraphe triee :**************\n\n");
  • while (*(tab+i)->l!='\0')
  • {
  • printf("%s\n",(tab+i)->l);
  • i++;
  • }
  • printf("\n******************************************************\n");
  • }
  • /***************************end affichage**************************/
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define max 100
struct ligne {
		char l[max];

	} ;
int main () {
	struct ligne parag[max];
	char a,prior[27]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

	void priority (char *);
	void saisie (struct  ligne * parag);
	void tri (struct  ligne * parag,char *);
	void affichage (struct  ligne * parag);

	
	printf("voulez vous changer l'ordre de priorite o/n\n(l'ordre alphabetique par default)");
	a=getch();
	printf("\n");
	if (a=='o')
		priority(prior);
	saisie(parag);
	flushall();
	tri(parag,prior);
	affichage(parag);

	getch();
	return 0;
}

/*********************priority********************************/

void priority (char * tab) {
	int i=0,k;
	char c;

	printf("\n\nentrez sucsessivement l'ordre souhaite du tri :\n\n");
	for (;i<=25;i++)
	{
		do
		{
			c=getche();
			k=0;
			while ((k<=i-1)&&(*(tab+k)!=c))
				k++;
			if (*(tab+k)==c)
				printf("\b\a");

		} while (*(tab+k)==c);
		printf(" ");
		*(tab+i)=c;
	}       printf("\n\n");
}

/******************************end priority*******************/

/*********************saisie**********************************/

void saisie (struct ligne * tab) {
	char c[max];
	int i=0;
	printf("\n\nentrer votre paragrephe chaque fois que vous terminer une\n");
	printf("ligne apuier sur entre,pour terminer la saisie enter une ligne vide\n");
	printf("\n\n**************************************\n\n");
	do
	{
		gets(c);
		strcpy((tab+i)->l,c);
		i++;
	}
	while ((c[0]!='\0')||(i==max));
	printf("******************************************\n\n");
}

/*****************************end saisie************************/

/*******************************tri*****************************/

void tri (struct ligne * tab,char * pri) {
	char c[max];
	int i=0,j,min,g=0,k=0;


	while (*(tab+i+1)->l!='\0')
	{

		min=i;
		j=i+1;
		while (*(tab+j)->l!='\0')
		{
			g=0;
			k=0;
			while ((g==0)&&(k<27))
			{
				if (*(tab+j)->l==*(pri+k))
					g=1;
				if (*(tab+min)->l==*(pri+k))
					g=-1;
				k++;
			}
			if (g>0)
				min=j;
			j++;
		}
		strcpy(c,(tab+i)->l);
		strcpy((tab+i)->l,(tab+min)->l);
		strcpy((tab+min)->l,c);
		i++;
	}
}

/*************************end tri********************************/

/***************************affichage****************************/

void affichage (struct ligne * tab) {

	int i=0;


	printf("\n\n************le paragaraphe triee :**************\n\n");
	while (*(tab+i)->l!='\0')
	{
		printf("%s\n",(tab+i)->l);
		i++;
	}
	printf("\n******************************************************\n");
}
/***************************end affichage**************************/



 Sources du même auteur

Source avec Zip [C] SIMULATION D'UN SGF UNIX

 Sources de la même categorie

Source avec Zip [C] WD_STRING V2.2 par cyberripper
Source avec Zip LES STRING EN C, AFFECTATION, CONCATÉNATION, SPLIT, ... par appranting
Source avec Zip [C] WD_STRING V1.9 par cyberripper
Source avec Zip LIBRAIRIE LANGUAGES par astro53
FONCTION : CHAR * AJUSTERTAILLECHAINE() par Rockanos

Commentaires et avis

Commentaire de lgsama le 19/04/2004 22:56:46

salut a tout ,
j'ai un probleme a resoudre:
   au site suivant  j'ai trouvé un programme qui traite les fichiers textes (www.up.univ-mrs.fr/wcpp/V1/WinTD/TD20.pdf),alors j'aimerai trier les mots  d'un fichier selon leurs nombre d'occurences apres suppression des mots vides (article , adjectifs , ponctuation.......)
c.a.d que  que j'aimerai ajouté au code source qui existe au site cité
une FONCTION ecrite en VISUEL C++ QUI VA ME PERMETTRE de trier un fichier texte quelquanque selon L'ORDRE ALPHABETIQUE DES MOTS
est merci a tout ( j'attend vous reponse avec plaisir

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales