ProgHelp

Une communauté intelligente et active

Les chaines de caractères

Message par Sehnsucht » 05 Janvier 2014, 16:31

Techniquement non, un tuto c'est un service que l'on rend aux autres, donc oui je suis chiant (et je l'assume) mais avoir une convention de nommage cohérente en fait partie [mais comme le suggérais le fait de mettre entre crochet c'était juste une remarque anecdotique]
Ce qui me chagrine le plus (et tu es passé à côté en éditant ton post pour remettre l'indentation) c'est que dans le dernier extrait il n'y a pas de fonction modify.
#include <unistd.h>
void affiche(char *s)/* fonction avec un paramètre s pointeur sur char*/
{
int i;

i = 0; /* en C la première case est 0 enssuite 1 etc ....*/
while(s[i] != '\0') /* tant qu'il est différent du caractères '\0' & le [] permet de parcourir les cases */
{
write(1, &s[i],1); /*on prend l'adresse du caractère pointer*/
i += 1;/*on augmente de 1 pour avancé dans c'est case*/
}
// -------------------------------------------- Début modif ICI --------------------------------------------
// il manque accolade fermante de affiche
// et ceci est faux
// void (char *string)
// il manque le nom de la fonction soit
void modify (char *string)
// -------------------------------------------- Fin modif ICI --------------------------------------------
{
char x = '\0'; /* x prend la valeur du '\0'*/

string[6] = x;/*le 7 ème élément (on compte la case 0 cela donne 1 pour le zero + 6 = 7) prend la valeur de x soit '\0' qui est la fait de la chaine*/
}
}


Bref comme je le disais, il faut faire plus attention ; c'est pas pour être méchant que je dis ça (même si je prends rarement des gants et ça des fois c'est mal perçu [mais c'est qui je suis :hap: ])
Dernière édition par Sehnsucht le 05 Janvier 2014, 19:54, édité 1 fois.
Censément, quelqu'un de sensé est censé s'exprimer sensément.

Image
Avatar de l’utilisateur
Sehnsucht
Membre VIP
 
Messages : 273
Points d'honneur : 210 PH
Inscription : 10 Fév 2013

Message par Patak » 05 Janvier 2014, 16:46

et tu es passé à côté en éditant ton post pour remettre l'indentation


Non, c'est moi qui l'ai fait vite fait :?

Je cite mon dernier message, qui est passé dans la page précédente -_-

Anasse82, quand un membre te fait une réflexion, il faut la prendre le plus intelligemment possible.
Et il faut voir le bon côté des choses surtout :)
Tu postes un tuto en C, et des membres plus expérimentés te partagent leur point de vue, et te propose des améliorations pour ton code.
La meilleure chose à faire, c'est de les comprendre et de les accepter, sauf si vraiment tu n'en vois pas utilité :)
Mais tout ça, tu le sais ! Alors courage !
Combien de fois on a critiqué mes progs et tuto ?
C'est en acceptant qu'en devient meilleur 8-)

Encore si les commentaires étaient stupides, j'aurai compris ta réponse, mais ce n'est pas le cas !
Sehn aime bien critiquer, mais ses commentaires sont extrêmement constructif !
Je ne cesse de le remercier à chaque fois qu'il m'en fait (qu'ils soient positif ou négatif) :lol:
Image


SPOILER : AFFICHER


Avatar de l’utilisateur
Patak
Administrateur
 
Messages : 1144
Points d'honneur : -666 PH
Inscription : 30 Oct 2012

Message par anasse82 » 05 Janvier 2014, 19:32

Patak a écrit :Tu postes un tuto en C, et des membres plus expérimentés te partagent leur point de vue,

les membres expérimenter c'est ceux qui utilise printf ? :lol:
anasse82
Petit nouveau
 
Messages : 9
Points d'honneur : 7 PH
Inscription : 31 Déc 2013

Message par MyHand » 05 Janvier 2014, 19:36

anasse82 a écrit :
Patak a écrit :Tu postes un tuto en C, et des membres plus expérimentés te partagent leur point de vue,

les membres expérimenter c'est ceux qui utilise printf ? :lol:


Les membres expérimentés sont ceux qui savent de quoi ils parlent.
Avatar de l’utilisateur
MyHand
Programmeur
 
Messages : 179
Points d'honneur : 50 PH
Inscription : 09 Jan 2013

Message par anasse82 » 05 Janvier 2014, 19:48

MyHand a écrit :
anasse82 a écrit :
Patak a écrit :Tu postes un tuto en C, et des membres plus expérimentés te partagent leur point de vue,

les membres expérimenter c'est ceux qui utilise printf ? :lol:


Les membres expérimentés sont ceux qui savent de quoi ils parlent.

Ha, parce que je sais pas peut-être ?
anasse82
Petit nouveau
 
Messages : 9
Points d'honneur : 7 PH
Inscription : 31 Déc 2013

Message par MyHand » 05 Janvier 2014, 19:59

Bon, après la lecture.. j'me suis arrêter un peu avant la fin, c'était suffisant pour créer mes arguments.


"On peut créer un tableau et mettre pour chaque case du tableau la valeur d'un caractère."


La valeur d'un caractère, ça peux être en byte, octets, hexadécimal, asm, et j'en passe. Il serait plus juste de dire "On peut créer un tableau et inséré chaque caractère dans une case différente du tableau".

"Ou bien, on peut le faire sans déclarer de tableau cependant la chaine de caractère sera dans une zone mémoire auquel nous ne pourrons pas écrire & modifié les cases comportant les caractères."


Au début, j'ai eu du mal a comprendre. Alors, si, tu peux créer une variable de type string qui contient une chaîne de caractère, et tu pourras aussi bien manipuler cette chaîne de caractère qu'avec un tableau. Seulement l'utilisation des tableau est plus simple si tu dois travailelr sur plusieurs caractère de ta chaîne.


Ensuite j'aurais du mal a t'expliquer concrètement que tu te complique la vie... pour rien.
Par exemple, en utilisant le type string: tu crée un pointeur "char". Pourquoi ? En incluant simplement la library "string", tu peux facilement créer une variable, qui contiendra directement ta chaîne:

string maString = "blabla t c kool. ";


De toute façon, et c'est partout pareil, "string" est un tableau de base, puisque c'est déjà un tableau de char contenant la chaîne.. C'est juste une manière beaucoup plus simple de travailler avec des chaînes de caractères.
Avatar de l’utilisateur
MyHand
Programmeur
 
Messages : 179
Points d'honneur : 50 PH
Inscription : 09 Jan 2013

Message par Sehnsucht » 05 Janvier 2014, 20:06

MyHand: tu confondrais pas un peu C et C++ :hap: std::string c'est en C++.

Par contre je savais pas qu'on mesurait l'expérience sur le choix de telle ou telle fonction -_- personnellement j'évite de me compliquer la vie, quand je veux afficher du texte formaté j'utilise printf (bah oui print formatted c'est un peu fait pour) sinon j'aurais tendance à utiliser puts.
Est-ce que ça fait de moi quelqu'un de plus ou moins expérimenté ? franchement j'en ai rien à cirer :grin:
Bref, beaucoup de polémique pour pas grand chose ...
Censément, quelqu'un de sensé est censé s'exprimer sensément.

Image
Avatar de l’utilisateur
Sehnsucht
Membre VIP
 
Messages : 273
Points d'honneur : 210 PH
Inscription : 10 Fév 2013

PrécédentSuivant

Retour vers C

cron
  • Qui est en ligne ?
  • Consulter les nouveaux messages
  • Consulter les messages sans réponse
  • Au total, il y a 1 utilisateur en ligne :: 0 inscrit, 0 invisible et 1 invité (basé sur le nombre d’utilisateurs actifs des 5 dernières minutes)
  • Le nombre maximum d’utilisateurs en ligne simultanément a été de 272 le 12 Mars 2015, 03:11
  • Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité