Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C > la bilbiothèque des zeros en C! > Lecture du sujet

la bilbiothèque des zeros en C!

zeros.h et zeros.c

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  4  5  6  7  8  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  4  5  6  7  8  Suivante
Hors ligne Jaloyan1 # Posté le 29/05/2008 à 20:03:43
Choisir = se priver du reste.
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
euh windows dos?
Avant quand la ram faisait 2 ko de mémoire?

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir.
Image utilisateur
Image utilisateur
Image utilisateur

Chef du fan club de jaloyan1
 
Hors ligne 1337833K # Posté le 29/05/2008 à 20:10:38
fgsfds
Groupe : Membres
N'importe quoi ...
Ce n'est pas moins sécurisé que de faire tableau[compteur] dans une boucle ...

Image utilisateur
Big Brother is watching you.
The chocolate is a lie !
Vous pouvez faire un geste gratuit pour changer le monde. :)
Libérez quelqu'un et quelqu'un-d'autre !
 
Hors ligne beta # Posté le 29/05/2008 à 20:15:05
Groupe : Membres
Il suffit qu'elle soit mal reparti ta mémoire prise et tu a vite fait de plus avoir assez d'espace A LA SUITE pour que tes variable de ton tableau soit REELLEMENT a la suite. MAIS sur les OS maintenant ce problème doit être réglé et il ne doivent pas donner au programme LA VRAI adresse des variables TU N'AURRA DONC PAS DE PROBLEME je te faisait seulement la remarque car tu parle toujours de faille de sécurité et autre sans vraiment savoir de quoi tu parle.
n'oubli pas que ton ordi c'est pas du code source !!!!
Hors ligne 1337833K # Posté le 29/05/2008 à 21:14:17
fgsfds
Groupe : Membres
Donc il n'y a aucun problème, c'est bien ce que j'ai dis.
Édité le 29/05/2008 à 21:15:50 par 1337833K

Image utilisateur
Big Brother is watching you.
The chocolate is a lie !
Vous pouvez faire un geste gratuit pour changer le monde. :)
Libérez quelqu'un et quelqu'un-d'autre !
 
Connecté yoch # Posté le 30/05/2008 à 00:42:46
Avatar
Groupe : Membres
Citation : tc
Citation : Jaloyan1
ah tu ne le savais pas?
Je me demande quels genre de logiciels tu faisais sans incrémentation de pointeurs.


A priori, on peut faire beaucoup de choses sans avoir à incrémenter de pointeur.

Thierry


+ 1 :)
_________________________

Citation : 1337833K
De toute façon, cette est fonction est quasi inutile, on peut très bien faire strchr(chaine, separateur) + 1.

Après réflexion, tu as tort; pour t'en convaincre, essaie donc ce code (espace en fin de la chaine):
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <stdio.h>
#include <string.h>

int main()
{
    char s[] = "0 1 2 3 4 5 ";
    char *part = s;
    while (part != NULL)
    {
        puts(part);
        part = findnext(part, ' ');
    }
    return 0;
}


Sinon, j'ai amélioré ma fonction pour qu'elle puisse gérer les chaines avec plusieurs espaces :
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
char *findnext (char *in, const int c)
{
    if (in != NULL)
    {
        char *out = in;
        while((out[0] != c || out[1] == c)&& out[1] != 0)
        {
            out++;  /* incremente le pointeur ! */
        }
        if (out[0] == c)
            return ++out;
        else
            return NULL;
    }
    else
        return NULL;
}

_______________________

Citation : tc
Citation : -ed-
Citation : Jaloyan1
pas très sécurisé quand meme.

Quels sont les risques que tu as détecté ?


Un problème de const-correctness par exemple, mais ce problème existe aussi avec strchr().

Thierry


Si vraiment vous y tenez, on peut faire cela, je pense :
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
char *findnext (const char *in, const int c)
{
    if (in != NULL)
    {
        char *out = (char*)in;
        while((out[0] != c || out[1] == c)&& out[1] != 0)
        {
            out++;  /* incremente le pointeur ! */
        }
        if (out[0] == c)
            return ++out;
        else
            return NULL;
    }
    else
        return NULL;
}
Édité le 30/05/2008 à 00:51:14 par yoch
 
Hors ligne freecircus # Posté le 30/05/2008 à 01:13:01
"Se coucher tard nuit"
Avatar
Groupe : Membres
Citation : yoch
Citation : 1337833K
De toute façon, cette est fonction est quasi inutile, on peut très bien faire strchr(chaine, separateur) + 1.

Après réflexion, tu as tort; pour t'en convaincre, essaie donc ce code (espace en fin de la chaine):
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <stdio.h>
#include <string.h>

int main()
{
    char s[] = "0 1 2 3 4 5 ";
    char *part = s;
    while (part != NULL)
    {
        puts(part);
        part = findnext(part, ' ');
    }
    return 0;
}

Je n'ai pas compris en quoi ce code est une preuve que strchr() ne suffit pas (?)
Voici un code qui sauf erreur fonctionne quelque soit la chaîne :
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include<stdio.h>
#include<string.h>

int main(void)
{
  const char *str = "0 1 2 4 5 ";

  while( (str=strchr(str,' ')) && *++str)
    printf(">%s<\n",str);

  return 0;
}

edit : un do{]while serait plus approprié mais l'idée est là.
Édité le 30/05/2008 à 01:14:38 par freecircus

Image utilisateur
 
Connecté yoch # Posté le 30/05/2008 à 02:01:20
Avatar
Groupe : Membres

OK, c'est donc moi qui suis en tort ! :p

Par contre, essaie donc ça (cf. ma seconde amélioration):
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include<stdio.h>
#include<string.h>

int main(void)
{
  const char *str = "0 1  2   3     4        5 ";

  while( (str=strchr(str,' ')) && *++str)
    printf(">%s<\n",str);

  return 0;
}
Édité le 30/05/2008 à 02:04:29 par yoch
 
Hors ligne Jaloyan1 # Posté le 30/05/2008 à 07:24:48
Choisir = se priver du reste.
Avatar
Groupe : Membres
euh on peut m'expliquer ces codes?

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir.
Image utilisateur
Image utilisateur
Image utilisateur

Chef du fan club de jaloyan1
 
Hors ligne freecircus # Posté le 30/05/2008 à 11:34:11
"Se coucher tard nuit"
Avatar
Groupe : Membres
Citation : yoch
Par contre, essaie donc ça (cf. ma seconde amélioration)

Ouaip' j'aime bien, je ne sais pas trop dans quelle situation ça pourrait servir mais ça doit se trouver ^^

Citation : Jaloyan1
euh on peut m'expliquer ces codes ?

Tu ne les comprends pas ou tu les as juste survolé ?
Il y a juste une condition et une incrémentation de pointeur, tu devrais pouvoir y arriver.

Image utilisateur
 
Hors ligne Jaloyan1 # Posté le 30/05/2008 à 15:34:49
Choisir = se priver du reste.
Avatar
Groupe : Membres
non c'est pas ca, c'est juste a quoi ca sert cette guerre des clones codes?


Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir.
Image utilisateur
Image utilisateur
Image utilisateur

Chef du fan club de jaloyan1
 
Hors ligne freecircus # Posté le 30/05/2008 à 16:27:27
"Se coucher tard nuit"
Avatar
Groupe : Membres
..Tu as suivi l'affaire ?

-> Yoch propose une fonction qui renvoie ce qui se trouve après un certain caractère dans une chaîne,
-> toi-même et1337833K, vous lui dites qu'on peut faire la même chose en une ligne de code ("pas la peine de recoder la lib standart").
-> Yoch ne voit pas comment,
-> Je propose un exemple,
C'est ça que tu appelles une "guerre de codes ?"
-> Entre temps Yoch modifie le comportement de sa fonction de façon à ce que plusieurs caractères séparateurs soient comptés comme un seul. A ma connaissance ça n'existe pas encore et ça prendrait quelques lignes de code, d'où l'intérêt d'en faire une fonction (reste quand même à voir un cas pratique).

edit : corrigé pour le pseudo, désolé ^^,
Édité le 30/05/2008 à 16:35:33 par freecircus

Image utilisateur
 
Hors ligne IATGOF # Posté le 30/05/2008 à 16:32:34
Aurevoir.
Avatar
Groupe : Membres
Citation : freecircus

C'est ça que tu appelles une "guerre de codes ?"

C'etait juste pour le jeu de mot 'guerre des clones/codes'...

Image utilisateur
__Image utilisateur
____Image utilisateur
______Image utilisateur
________Image utilisateur
 
Connecté yoch # Posté le 30/05/2008 à 16:33:19
Avatar
Groupe : Membres
Merci pour cet excellent résumé !
Mais ce serait sympa de ne pas écorcher mon pseudo : yoch.

Pour ce qui est d'un application pratique, on pourrait imaginer utiliser cette fonction pour parcourir mot par mot une chaine entrée par l'utilisateur, ce qui permettrait de gérer les fautes de frappe (double espace). (c'est peut-être un peu tiré par les cheveux mais bon...)
Édité le 30/05/2008 à 16:40:57 par yoch
 
Hors ligne baaaad_boy # Posté le 30/05/2008 à 16:58:48
Avatar
Groupe : Membres
salut les gars !
une question peut être bête parce que je n'ai lu que la 1ere page et la dernière et je vois que vous êtes tjr coincé dans les strings ! une bibliothèque est bien quelque chose qui doit être là pour aider et pas juste pour améliorer.
la question est donc "si ce n'était pas déjà introduite" : pourquoi ne pas faire une bibliothèque pour les listes chainées en combinaison avec des templetes ?!!! c'est vachement beaucoup plus intéréssant et pratique ! et sinon, si vous êtes vraiment intéressé par les string alors pourquoi ne pas faire des bibliothèques qui font du traitement de texte d'autres langages comme l'asiatique ou l'arabe par exemple vu que leurs codage n'est pas comme le romain... "le textmining est vraiment intéressant"

l'idée de Jaloyan1 est très intéressante sauf que je crois mal exploité.

"c'était juste une pensée ! voilà "
Hors ligne tc # Posté le 30/05/2008 à 17:13:29
Readability counts
Avatar
Groupe : Membres
Citation : beta

Il arrive parfois que tout les variables d'un tableau ne soit pas à la suite dans la mémoire(c'est rare mais ça arrive),


Non. Sauf erreur de ma part, c'est garantit par la norme.

Thierry

"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth

| FAQ-Python | FAQ-C - FAQ-c.l.c | FAQ-C++ - FAQ-Lite |
 
Hors ligne sharky.fr # Posté le 30/05/2008 à 17:17:55
DIY
Avatar
Groupe : Membres
Citation : tc
Citation : beta

Il arrive parfois que tout les variables d'un tableau ne soit pas à la suite dans la mémoire(c'est rare mais ça arrive),

Non. Sauf erreur de ma part, c'est garantit par la norme.


Citation : 3.1.2.5 Types
An array type describes a contiguously allocated set of objects with a particular member object type, called the element type .

  • Être conscient de son ignorance, c'est tendre vers la connaissance. Benjamin Disraeli
  • Il semble que la perfection soit atteinte non quand il n’y a plus rien à ajouter, mais quand il n’y a plus rien à retrancher. Antoine de Saint-Exupéry
Image utilisateur

 
Hors ligne Jaloyan1 # Posté le 30/05/2008 à 17:30:41
Choisir = se priver du reste.
Avatar
Groupe : Membres
Citation : bad_boy
l'asiatique ou l'arabe



Euh l'asiatique n'existe pas.
L'arabe il y a plein de dialectes differents tout dépend du pays dans lequel tu te trouves.

Je vais demander aux autres si ils sont d'accord pour les langues étrangères.
Mais ca va etre un peu long, non?
Et quelles genre de fonctions veut tu faire?
Édité le 30/05/2008 à 17:32:49 par Jaloyan1

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir.
Image utilisateur
Image utilisateur
Image utilisateur

Chef du fan club de jaloyan1
 
Hors ligne baaaad_boy # Posté le 31/05/2008 à 01:56:34
Avatar
Groupe : Membres
Citation : Jaloyan1
Euh l'asiatique n'existe pas.
L'arabe il y a plein de dialectes differents tout dépend du pays dans lequel tu te trouves.

Je vais demander aux autres si ils sont d'accord pour les langues étrangères.
Mais ca va etre un peu long, non?

l'idée en général ne viens pas de moi en tout cas j'en suis pas l'inventeur ! il y a un grand problème pour les traitement de texte pour l'arabe par exemple "il n'y a qu'une seule arabe et je ne parle pas des dialectes lol" l'encodage des lettres arabe sont si je me rappel bien sur 8octet ou 12 je ne sais plus... donc c'est un grand travail qui "oui" dure longtemps !
Citation : Jaloyan1
Et quelles genre de fonctions veut tu faire?

je n'ai vraiment rien codé mais je fini mon PFE (projet de fin d'etudes) et je vais voir ce que je peux ajouter !
bonne continuation !
Hors ligne Jaloyan1 # Posté le 31/05/2008 à 09:19:00
Choisir = se priver du reste.
Avatar
Groupe : Membres
L'arabe sur 12 octets?

Je pensais que ca avait juste des caracteres en plus.

La meilleure solution serait pas de les stocker dans un short?
Avec un typedef foreign short.

Mais il faudra faire un moyen pour changer la liste des mots complexes sans demander a l'utilisateur de le faire lui meme.

Édité le 31/05/2008 à 09:20:43 par Jaloyan1

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir.
Image utilisateur
Image utilisateur
Image utilisateur

Chef du fan club de jaloyan1
 
Hors ligne rz0 # Posté le 31/05/2008 à 09:32:36
meuh
Avatar
Groupe : Membres
Ce topic est un tissu de conneries mais passons.

Ça m'étonnerait beaucoup sur 12 ou même 8 octets hein. L'Unicode est codé sur 4 octets et on n'a pas encore fait usage des deux derniers donc bon... enfin je peux me tromper mais j'y crois pas trop.

Et aussi, « 12 octets ... stocker dans un short »... t'es sûr que t'es d'accord avec ce que tu dis là ?
 
Hors ligne asmanur # Posté le 31/05/2008 à 09:35:14
Avatar
Groupe : Membres
Citation : Jaloyan1
L'arabe sur 12 octets?

Je pensais que ca avait juste des caracteres en plus.

La meilleure solution serait pas de les stocker dans un short?
Avec un typedef foreign short.

Mais il faudra faire un moyen pour changer la liste des mots complexes sans demander a l'utilisateur de le faire lui meme.


Ola, attention, défaut de conception en vue !
À stocker 12 octets dans un short, tu risques un mollet overflow, tu devrais plutôt utiliser un pantalon à la place.

Sinon, pour ajouter ma pierre à l'édifice qu'est ce topic : Unicode.

Image utilisateur

Metzgermeister ɛστι παιδοφονος
 
Hors ligne -ed- # Posté le 31/05/2008 à 10:30:38
C is a sharp tool
Avatar
Groupe : Membres
Citation : asmanur

À stocker 12 octets dans un short, tu risques un mollet overflow, tu devrais plutôt utiliser un pantalon à la place.

Moouuuaaahhhh!

@ J 1er

STP, arrête le massacre. Cesse de poster n'importe quoi à tord et à travers. Ce forum n'est pas dédié à recevoir tes élucubrations... Si tu avais fait ça sur DVP, j'aurais tout effacé. Point.

Édité le 31/05/2008 à 11:00:15 par -ed-

Emmanuel Delahaye.
Non à la pub sur l'alcool sur Internet.

Des infos sur la programmation et le langage C:
http://bien-programmer.blogspot.com/
http://mapage.noos.fr/emdel/


Image utilisateur
 
Hors ligne 1337833K # Posté le 31/05/2008 à 11:18:40
fgsfds
Groupe : Membres
Citation : -ed-
Citation : asmanur

À stocker 12 octets dans un short, tu risques un mollet overflow, tu devrais plutôt utiliser un pantalon à la place.

Moouuuaaahhhh!

Qhqhqh, je lolle grave !11111

Citation : -ed-
@ J 1er

STP, arrête le massacre. Cesse de poster n'importe quoi à tord et à travers. Ce forum n'est pas dédié à recevoir tes élucubrations... Si tu avais fait ça sur DVP, j'aurais tout effacé. Point.

+1.
Il ferait bien d'apprendre un peu de "culture générale informatique" avant de raconter n'importe quoi.

On devrait vraiment faire un post-it bêtisier. :D

Image utilisateur
Big Brother is watching you.
The chocolate is a lie !
Vous pouvez faire un geste gratuit pour changer le monde. :)
Libérez quelqu'un et quelqu'un-d'autre !
 
Hors ligne Jaloyan1 # Posté le 31/05/2008 à 14:23:13
Choisir = se priver du reste.
Avatar
Groupe : Membres
Ah oui je me suis trompé dans le vocalbulaire.
J'ai confondu octet et bits.

Désolé, c'est de ma faute.

Toutes mes excuses.

Il faut l'allouer dynamiquement je crois pour 12 octets car je connais long long 8 octets mais pas plus.

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir.
Image utilisateur
Image utilisateur
Image utilisateur

Chef du fan club de jaloyan1
 
Hors ligne baaaad_boy # Posté le 31/05/2008 à 15:11:27
Avatar
Groupe : Membres
c'est moi le premier fautif, j'ai vraiment oublier la longueur précise mais c'est plus grand que pour les lettres romaines j'en suis sûr donc pour ne plus dire de bétises. juste oubliez ça et je reviendrai prochainement avec un exemple si j'en trouve chez mon copain voilà
continuez sur ce que vous faisiez avant :)
Hors ligne 1337833K # Posté le 31/05/2008 à 15:15:30
fgsfds
Groupe : Membres
Citation : baaaad_boy
j'ai vraiment oublier la longueur précise mais c'est plus grand que pour les lettres romaines

On dit les "caractères latins".

Image utilisateur
Big Brother is watching you.
The chocolate is a lie !
Vous pouvez faire un geste gratuit pour changer le monde. :)
Libérez quelqu'un et quelqu'un-d'autre !
 
Hors ligne Jaloyan1 # Posté le 31/05/2008 à 15:46:53
Choisir = se priver du reste.
Avatar
Groupe : Membres
ca serait bien de gérer d'autres langues.


Mais bon on continue pour l'instant sur le francais.

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir.
Image utilisateur
Image utilisateur
Image utilisateur

Chef du fan club de jaloyan1
 
Hors ligne baaaad_boy # Posté le 31/05/2008 à 15:49:03
Avatar
Groupe : Membres
ouais si tu veux 1337833K!! en tout cas c'est des bites pas des octets... j'affirmerai l'information exacte dès que j'aurai une réponse !
Hors ligne -ed- # Posté le 31/05/2008 à 15:51:56
C is a sharp tool
Avatar
Groupe : Membres
Citation : baaaad_boy
ouais si tu veux 1337833K!! en tout cas c'est des bites

Hum, il y a des mineurs ici... Merci de ne pas écrire n'importe quoi...


Emmanuel Delahaye.
Non à la pub sur l'alcool sur Internet.

Des infos sur la programmation et le langage C:
http://bien-programmer.blogspot.com/
http://mapage.noos.fr/emdel/


Image utilisateur
 
Hors ligne RedSide # Posté le 31/05/2008 à 15:55:36
° ZeRo Abs0Lu °
Avatar
Groupe : Membres
i'm chocked o_O

baaaadboy : bytes.

Image utilisateur

- Forum sur la sécurité informatique : C'est ici
- Projet site web en cours : ----------/ 5%
- Counter Strike | [Fr]EeZe! - DRuST
- Bosse sur Stairway to Heaven Ze Solo
- Site perso : Utililogs -> utililogs.free.fr
 
Hors ligne baaaad_boy # Posté le 31/05/2008 à 15:59:54
Avatar
Groupe : Membres
shame to me, sorry sorry for this big mistake :lol:

Retour au forum "Langage C" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 377 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0424s (0.0214s)