Question sur C chaine de caractère Aidé moi

kribac Messages postés 148 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour a ts é a tte

j'ai "p" une chaine de caractère char p[20];

par ex p = "bonjour monsieur"

ce que je veux faire c'est de copié "monsi" de ma chaine p sur une autre variable "b" qui é une chaine de caractère

for(..i de 9 a 16.....) strcpy(a,p[i]);

mais cela ne marche pas par ce que on doi faire strcpy(a,p) et comme ça il me copie tte la chine :(

et j'ai essayé strncpy(a,p,5) et cella marche mé elle me copie les 5 premier caractère donc il me copie "bounjo" mais moi je veux copié "monsi"

est ce que il ya une solution a ça ? je suis blocké je ne pas continué mon TP :( merci bqq a tsss

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Pour décaler ta chaîne de caractères tu peux utiliser l'opérateur +

    strncpy(a,p+8,5);
    Sinon il suffisait de faire ta boucle for, mais au lieu d'utiliser strcpy, il faut directement copier les caractères les uns après les autres.

    int i; 
    for (i=0; i<5; i++) 
        a[i]=p[i+8]; 
    a[5]='\0';

    La confiance n'exclut pas le contrôle
    1