Question sur C chaine de caractère Aidé moi

Fermé
kribac Messages postés 105 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 28 avril 2016 - Modifié par kribac le 16/01/2011 à 09:00
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 16 janv. 2011 à 11:17
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
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 16/01/2011 à 11:17
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