Comment reprogrammer la fonction strfry a partir dfe pointeur? - C - Programmation
Marsh Posté le 06-04-2005 à 22:58:33
en un mot : "char *"
Marsh Posté le 06-04-2005 à 23:08:41
Code :
|
note aux chieurs de progra : oui mon rand est pourri paske bits de poids faible toussa, et oui je m'en fous
Marsh Posté le 06-04-2005 à 23:52:42
chrisbk a écrit :
|
je n'arrive pas trop a comprendre la premiere ligne :
Code :
|
anag contient donc un caractere?
Marsh Posté le 07-04-2005 à 00:03:35
chrisbk a écrit :
|
|
Marsh Posté le 07-04-2005 à 00:13:06
zaynyy a écrit : je n'arrive pas trop a comprendre la premiere ligne :
|
anag() est une fonction. Comme tu as dû l'apprendre dans tes cours de C, une fonction peut
Dans ce cas, on précise le type de la valeur retournée. Comme ici, on veut retourner une chaine de caractères (qui, rappelons le est un tableau de char terminé par un 0) et qu'on ne sait pas retourner un tableau mais seulement l'adresse de son premier élément, on utilise un type 'oiinteur sur char' (char*).
continue à poser des questions... mais n'oublie pas de relire tes cours et d'ouvrir ton livre de C...
Quelques révisions :
http://mapage.noos.fr/emdel/init_c.htm
Marsh Posté le 07-04-2005 à 00:32:33
tu vois ! c'est exactement ça ! le concours de l'indentation la plus profonde !
Marsh Posté le 07-04-2005 à 00:50:29
N'empeche que c'est propre et ca sent pas le truc fait à l'arrache à la chrisbéka
Marsh Posté le 07-04-2005 à 05:18:58
Niveau algo je ferais plutôt ça :
Code :
|
Marsh Posté le 07-04-2005 à 08:14:12
matafan a écrit : Niveau algo je ferais plutôt ça :
|
C'est clair. A croire qu'en Charentes on leur apprend ni le C, ni l'algo, ni les systèmes UNIX, ni à utiliser proprement les générateurs pseudo-aléatoires congruentiels linéaires. Mais qu'apprennent-ils donc ?
Marsh Posté le 07-04-2005 à 08:34:38
Chronoklazm a écrit : N'empeche que c'est propre et ca sent pas le truc fait à l'arrache à la chrisbéka |
j'expliquais un concept, hein, jfaisais pas un tp qu'on pouvait directement mailer au prof
Marsh Posté le 07-04-2005 à 08:36:47
Lam's a écrit : C'est clair. A croire qu'en Charentes on leur apprend ni le C, ni l'algo, ni les systèmes UNIX, ni à utiliser proprement les générateurs pseudo-aléatoires congruentiels linéaires. Mais qu'apprennent-ils donc ? |
hé ho hein ?
j'ai pas fait mes etuds en charentes
(et je rapelle que sous mon code il y avait une petite note, vous avez du tous oublier de la lire )
Marsh Posté le 07-04-2005 à 08:41:57
chrisbk a écrit : hé ho hein ? |
En vrai, je pense que tout le monde s'attendait à ce que tu nous fasse un jeu de mots pourri sur les stir-fries.
On est un peu déçus quoi.
Marsh Posté le 07-04-2005 à 08:45:06
Taz a écrit : tu vois ! c'est exactement ça ! le concours de l'indentation la plus profonde ! |
Bah, mon indenteur est reglé à trois. Tu peux regler le tien à 2 ou 1 si tu veux...
Marsh Posté le 07-04-2005 à 09:26:04
Emmanuel Delahaye a écrit : Bah, mon indenteur est reglé à trois. Tu peux regler le tien à 2 ou 1 si tu veux... |
non, en fait je parle de ton style qui consiste à n'utiliser ni return, ni continue et à vouloir scoper tes variables le plus finement possible. Pour les variables je comprends, mais en C89, ça fait drôlement ****** quand même.
Marsh Posté le 07-04-2005 à 09:32:32
Taz a écrit : non, en fait je parle de ton style qui consiste à n'utiliser ni return, ni continue et à vouloir scoper tes variables le plus finement possible. Pour les variables je comprends, mais en C89, ça fait drôlement ****** quand même. |
Ah, la réduction de la portée... C'est une façon de préparer le code à la modularisation. Ca permet de visualiser les entités fonctionnelles. Ca aide aussi à la compréhension du code. C'est vrai que ça ajoute quelques niveaux de {}, mais est-ce vraiment gènant ?
Quand au return unique, c'est plus clair et ça évite les sorties sauvages avec oubli de libération de ressource (allocation, fichier ...), ou valeur de retour non initialisée... Ca simplifie aussi la mise au point sous émulateur...
Marsh Posté le 07-04-2005 à 09:36:39
Emmanuel Delahaye a écrit : Ah, la réduction de la portée... C'est une façon de préparer le code à la modularisation. Ca permet de visualser les entités fonctionelles. Ca aide aussi à la compréhension du code. C'est vrai que ça ajoute quelques nievaux de {}, mais est-ce vraiment gènant ? |
la dessus je suis d'accord. De plus, les fonctions avec de gros paté de variable au début, je trouve ca particulierement laid et freine la comprehension du code
Emmanuel Delahaye a écrit : |
la dessus je suis moins d'accord, le return unique oblige a rajouter du if/else un peu partout, rendant le code plus touffu. Pour la libération de ressources, j'avoue sans honte que pour ca je place de tps en tps un fin goto des familles
Code :
|
Marsh Posté le 07-04-2005 à 09:56:24
le gros paté non, mais quand même, soit tu te trouves un compilo C99, soit tu fais un compromis ... parce que sinon, on peut la faire comme en scheme avec un let, et ouvrir un contexte par variable ...
Marsh Posté le 07-04-2005 à 10:30:13
Taz a écrit : le gros paté non, mais quand même, soit tu te trouves un compilo C99, soit tu fais un compromis ... parce que sinon, on peut la faire comme en scheme avec un let, et ouvrir un contexte par variable ... |
bin pour le coup on est pas en C99 donc ca regle le pb et bon, sur l'appli on a du vieux code qui traine, et parfois, heuh, on a des, disons, surprises
Marsh Posté le 06-04-2005 à 22:49:45
Bonsoir,
je bloque sur un exercice que je ne connais pas la solution :
Ecrivez la fonction strfry qui crée un anagramme du contenu d'une chaine en utilisant la fonction rand pour échanger aléatoirement des caractères. La fonction renvoie un pointeur sur la chaine modifiée.
Je voulais ecrire une fontion qui renvoie une chaine de caracteres directement (l'anagramme), mais cela n'est pas possible. Je ne peux en effet, que renvoyer un caractere avec la fonction.
J'ai des petites idées mais je n'arrive pas a aller jusqu'au bout.
Ceci devrait être un jeu d'enfant pour vous?