Je déteste donner des réponses « complètes » aux questions de devoirs, mais la seule façon de répondre à votre question est de vous montrer la réponse à votre problème, car il est si fondamental:
#include <stdio.h>
#include <string.h>
#define MAXLEN 20
char substr[10][MAXLEN];
int main(void) {
strncpy(substr[0], "abc", MAXLEN);
puts(substr[0]);
return 0;
}
Votre code (comme est) a plusieurs défauts:
- Vous traitez
substr[0]
comme chaîne littérale. Tu ne peux pas faire ça.
- Vous n'utilisiez pas correctement les formateurs printf.
%s
est pour les chaînes
- Vous ne besoin déranger
printf()
pour imprimer une chaîne
- Vous devriez (en code réel) pour surveiller les dépassements de tampon, d'où
strncpy()
- Si
main()
ne veut pas/argc
et argv
, ses arguments doivent être void
main()
doit renvoyer une valeur, comme son type de retour est int
- Vous n'utilisez quoi que ce soit sur
<stdlib.h>
, pourquoi l'inclure?
Je suggère de rechercher des littéraux de chaîne, les fonctions disponibles dans <string.h>
ainsi que les spécificateurs de format.
Notez également, je suis pas vérifier le retour de strncpy(), ce qui est quelque chose que vous devriez faire. C'est laissé comme un exercice pour le lecteur.
puis comment l'imprimer? – friends
'printf ("% s ", substr [0]);' –