begin process at 2012 05 30 19:09:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

tronquer une chaine de caractère


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tronquer une chaine de caractère

mardi 12 octobre 2004 à 15:16:33 | tronquer une chaine de caractère

gilleswathelet

bonjour,
je programme un p'tit peu en C et j'aimerais savoir s'il est possible, a partir d'une chaine de caractères pouvant comporter jusqu'à 60 caractères, d'afficher uniquement les 20premiers suivi de ....
exemple :
char chaine[60]="bonjour, voici un petit essai pour mon problème";
moi ce que je veux obtenir de printf, c'est
bonjour, voici un pe...

attention il faut toutefois garder la chaine de caractère complète dans mon fichier.

merci d'avance
mardi 12 octobre 2004 à 16:01:49 | Re : tronquer une chaine de caractère

Hades53

Membre Club
Rien de pus simple:


#include <stdio.h>

void tronca(char *str) {
str += 20;
if (*str) {
*str++ = 46;
*str++ = 46;
*str++ = 46;
*str++ = 0;
}
}

int main(int argc, char* argv[])
{
char chaine[60]="bonjour, voici un petit essai pour mon problème";
tronca(chaine);
printf("%s\n",chaine);
return 0;
}


Cependant attention à la taille du tableau...
mardi 12 octobre 2004 à 16:06:58 | Re : tronquer une chaine de caractère

Hades53

Membre Club
Et en affichant directement dans la console, sans modifier la chaîne, c'est encore plus simple:


#include <stdio.h>

void troncaDisp(char *str) {
int i = 0;
while (i < 20 && *str != 0) {
printf("%c",*str++);
i++;
}
printf("...\n");
}

int main(int argc, char* argv[])
{
char chaine[60]="bonjour, voici un petit essai pour mon problème";
troncaDisp(chaine);
return 0;
}
mardi 12 octobre 2004 à 16:16:19 | Re : tronquer une chaine de caractère

vecchio56

Administrateur CodeS-SourceS
pour afficher x caracteres:

char c = chaine[x];
chaine[x] = 0;
puts(chaine);
chaine[x] = c;
mardi 12 octobre 2004 à 17:49:35 | Re : tronquer une chaine de caractère

djl

quand meme, faut d'abord jeter un oeil du coté des formats

#include <stdio.h>


int main()
{
const char *str = "bonjour, voici un petit essai pour mon problème";

printf( "%.10s\n", str );

}
mardi 12 octobre 2004 à 17:55:07 | Re : tronquer une chaine de caractère

djl

Hades53 > ta pas trouver mieux que printf pour afficher un caractere ou une chaine ? ca te derange pas que printf devra parser systematiquement ta chaine (sans format) pour du beurre ?

fputc (putchar aussi, en macros), fputs (vecchio56, si tu veux pas le \n à la fin), puts, ...
mardi 12 octobre 2004 à 17:58:40 | Re : tronquer une chaine de caractère

vecchio56

Administrateur CodeS-SourceS
Salut djl

au fait saurais tu faire printf( "%.10s\n", str ); sachant que 10 est dans une variable? Je pensais faire un sprintf préalable, mais ca devient lourd...
mardi 12 octobre 2004 à 18:04:19 | Re : tronquer une chaine de caractère

djl

chaine[x] = 0; est plus aproprié a ce moment la
mardi 12 octobre 2004 à 18:54:04 | Re : tronquer une chaine de caractère

Hades53

Membre Club
djl-> oui printf("%.20s...\n",chaine); ;)
Enfin bon ça sert à rien de se prendre la tête la-dessus, ça pas un gain de 2.10^-13ms qui va changer grand chose.
mardi 12 octobre 2004 à 19:58:08 | Re : tronquer une chaine de caractère

djl

printf("%.20s...\n",chaine); suffit

reconnais que c'est dommage d'avoir perdu du temps a coder un truc qui existe et est universel

1 2

Cette discussion est classée dans : caractère, chaine, caractères, tronquer


Répondre à ce message

Sujets en rapport avec ce message

HELP...chaine de caractères....en C..défi TP [ par SniPi ] Voici un exercice bien sympatique à faire en C.Je vous passerez le corrigé de ce TP mercredi prochain, en attendant j'aimerais voir ce que vous pensez transformer un caractère en une chaine de caractères [ par zarce ] bonjour j'utilise une fonction qui affiche à l'écran (graphique) des chaines de caractères la syntaxe est du style ...DrawString(posX,posY, chaine de Trouver l'indice d'un caractère dans une chaine de caractères [ par new0staff ] Bonjour tout le monde!Je cherche une fonction qui me permet de trouver l'indice d'un caractère dans une chaine de caractère.J'ai utilisé une boucle qu concaténer un caractère a une chaine de caractères [ par deck_bsd ] Bonjour, voila g un petit problem, ds mon programe je converti un int en char, mais apres je veu le concaténer en faisant strcat(chaine_de_caract,car Chaines de caractères [ par Roro8883 ] Salut,je suis complètement perdu et embrouillé dans les chaînes de caractères en C++ !!!!Comment est-ce que je peux faire pour savoir, dans une chaine suppression caractère [ par fadiam ] bonsoir. une fonction lisant une chaine de caractères n'accepte que les caractères entre '0' et '9' (chiffres) et les ',' '-' '.' et ' '. Si il y a d Test sur chaine de caractères [ par valoch33 ] Bonjour à tous, J'ai un petit problème pour faire mon programme. En effet, je veux faire saisir des données par un utilisateur, comme son nom et son p Chaine de caractères et liste de mots [ par joshua509 ] J'ai un gros problème d'algorithme. Comment faire pour placer,tous les mots séparer d'un espace d'une chaine de caractère,dans une liste chainée de mo Récuération chaine de caractère taille variable stdin [ par omarino_007 ] Bonsoir, Je cherche a enregistrer une chaine de caractère (en pratique c'est le résumé d'un livre pour un projet de gestion de bibliothèque), que j'éc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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,218 sec (3)

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