Traitement de chaine de caractere en C

Résolu/Fermé
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 - 11 mai 2007 à 09:26
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 - 11 mai 2007 à 10:10
Bonjour

Voila je suis nouveau en C donc j'aimerai avoir des petites precision.
J'ai une chaine de caractere char *s="blallalalal" que je voudrais traite c'est a dire par exemple rajoute ou enleve des morceaux :

exemple

char *s="blalalalal";
(void) traitement (char *s) {

faire le traitement
}

char *saprestraitement="blalalalalsssssssssss";

Est ce que quelqu'un pourrai m'explique comment je peux faire ca merci

6 réponses

dubcek Messages postés 18587 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 12 mars 2023 5 583
11 mai 2007 à 09:56
Il y a énormément de fonctions disponibles dans la librairie standard pour manipuler des chaines de caractères:

http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/string.3.html

string, strcasecmp, strcat, strchr, strcmp, strcoll, strcpy, strcspn, strdup, strfry, strlen, strncat, strncmp, strncpy, strncasecmp, strpbrk, strrchr, strsep, strspn, strstr, strtok, strxfrm, index, rindex - Opérations sur les chaînes de caractères (string).
2
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 816
11 mai 2007 à 09:58
Si, tu peux initialiser une chaine par '='.
char *mychaine="coucou"; va être accepter par le compilateur.
Par contre, il ne faut pas le faire de manière dynamique sous peine de recevoir une belle erreur de segmentation.
1
lefoufighter Messages postés 277 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 12 avril 2018 99
11 mai 2007 à 09:30
Bonjour, il existe des fonctions en c qui font déjà ce travail pas besoin de se compliquer la vie.
pour concaténer 2 char* il exsite strcat(char*, char*) et il doit en exister pour découper 2 chaines aussi.

0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
11 mai 2007 à 09:53
Salut,

Déjà pour initialiser ta chaîne de caractère en C, tu dois faire strcpy ou sprintf et non '=' (y a pas de std::)

Ensuite pour concaténer oui il y a strcat et sprintf encore une fois. Pour séparer, soit tu fais un for qui boucle sur les cases qui t'intéresse, soit tu passes par un pointeur sur la case qui t'intéresse dans ta chaîne du genre ta_chaine_coupee=&ta_chaine_de_base[la_case_qui_t_interesse];
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 816
11 mai 2007 à 09:54
Voici la liste des fonctions de bases en C pour les chaines de caracteres
strcpy
strncpy
strcat
strncat
strcmp
strncmp
strlen
strchr
strrchr
strstr
strspn
strcspn
strpbrk
strtok
Consulte la doc pour plus de renseignements
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
11 mai 2007 à 10:10
merci a tous
0