2011-12-28 2 views
0

Vraie question rapide, probablement le temps pour lequel j'ai oublié une chose si basique! Je capitalise la première lettre d'un tableau, et je veux ensuite ajouter un 1 (pour commencer à la fin) - Je génère des listes de mots pour les réseaux WPA/2 dans le cadre de mes recherches sur la sécurité du réseau.C - Ajouter à mon tableau?

Ainsi, travailler la longueur du mot, puis, dans la position dans le tableau à la fin de ce mot, placez un numéro 1 ou 2, ou 3.

totalement oublié comment vous le faites bien que!

void capFirst(char *s, int i) { 
s[0] = (toupper(s[0])); 
} 


int main(int argc, char** argv) { 
int i; 
char fileSave[256]; 
char myString[50]; 
FILE *fpIn, *fpOut; 
for(i = 1; i < argc; i++) { 
    fpIn = fopen(argv[i], "rb"); 
    snprintf(fileSave, 256, "%s~[%d]", argv[i], i); 
    fpOut= fopen(fileSave, "wb"); 
    while((fgets(myString, 49, fpIn)) != NULL) { 
     if(isspace(myString[0])) 
      break; 
     i = strlen(myString); 
     if((i > 8) && (i < 64)) { 
      capFirst(myString, i); 
      fprintf(fpOut, "%s", myString); 
     } 
    } 

    } 
    return 0; 
    } 
+0

Quelque chose comme, s [strlen (s) + 1] = 'x'? – PnP

+3

Je ne comprends pas ce que vous essayez de faire. –

+0

S'il vous plaît voir modifier. – PnP

Répondre

2

Vous auriez besoin

i = strlen(string); 
string[i] = whatever you want there; 
string[i+1] = 0; 

Mais vous devez savoir que string a assez d'espace pour le 0-terminaison. En passant, vous utilisez i comme compteur de boucle dans la boucle for ainsi que pour le strlen à l'intérieur de cette boucle, c'est généralement une mauvaise idée.

+0

Hmm, il l'ajoute à l'avant du mot: S – PnP

+0

Huh? Si 'strlen' fonctionne correctement, son résultat est la position du 0-terminator, la fin de la chaîne. Donc, ce qui précède place le nouveau personnage à la fin. –

Questions connexes