Char ** en C

Fermé
Tisiph0n3 - 4 nov. 2007 à 06:00
 Tisiph0n3 - 4 nov. 2007 à 13:37
Bonjour,
alors considérons un tableau de pointeurs sur des chaines de caractères un truc du style, char **argv.
*argv[1] pointe sur la 2e chaine, ma question comment faire toujours en utilisant argv pour me deplacer dans la chaine sur laquelle pointe *argv[1] sans stocker argv[1] dans un char * le nb d'arguments passés a mon programme étant inconnus d'avance.
Merci

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
4 nov. 2007 à 11:58
Salut

J'ai pas tout compris ce que tu veux faire.
Mais dans ton programme, tu as :

int main(int argc, char **argv)

argc, te donne le nombre d'arguments augmenté de 1 (en C, le nom du programme est compté comme dans argc et stocké dans argv[0]).
Ensuite pour récupérer les arguments :
int i;
for(i=1;i<argc;i++)
    printf("%s ",argv[i]);


Pour te déplacer, tu peux par exemple, prendre le premier caractère argv[0][0]. Et tu as la fonction strlen pour connaitre la longueur de la chaine.

J'espère avoir répondu à ta question.
1