Obtenir les 10 premiers caractères d'une chaîne de caractères?
Je n'ai pas été en mesure de trouver toute l'information sur le web-recherche. Où dois-je regarder?
man strncpy
ici vous allezOu de le quitter et de mentionner que c'est du C++ car il signifie que l'.
Éviter
strncpy
: randomascii.wordpress.com/2013/04/03/stop-using-strncpy-alreadyOriginalL'auteur user2341069 | 2013-05-02
Vous devez vous connecter pour publier un commentaire.
si vous voulez raccourcir la chaîne de 10 caractères, puis mettre machaine[10] = 0; (Ce qui myString points à la mémoire et non pas une chaîne lettral)
non, vous ne pouvez pas, comme pour l'homme page "Les chaînes ne peuvent pas se chevaucher, et la chaîne de destination dest doit être assez grand pour recevoir la copie." Comme machaine est un pointeur vers un char tableau dans la mémoire, à l'aide du pointeur de même deux fois signifie qu'ils "se chevauchent" dans la mémoire, et donc de provoquer une erreur. Essentiellement, cela signifie que la src ne peut pas être une sous-chaîne de l'heure d'été ou vice versa.
Est nulle de résilier le personnage n'est pas '\0' plutôt que de simplement un 0?
ils sont équivalents
OriginalL'auteur Lefteris E
target
est un pointeur non initialisée.Donc que dois-je ajouter ou modifier?
la cible n'est pas pointeur non initialisé. cibler les points à 100 octets de mémoire dans la pile. le \0 n'est pas nessesary que strncpy va le mettre
Pas sûr au sujet de l'initialisation de la chose, mais
strncpy
ne seront pas un'\0'
automatiquementOui, il l'était. Je vous remercie. Je suis un peu confus avec
char *a
etchar a[100]
OriginalL'auteur tianz
Ajoutant les réponses ci-dessus:
OriginalL'auteur Ashish Srivastava
Si vous êtes à la recherche d'une bonne source, voici un exemple de ligne de l'homme page, vous pouvez utiliser:
http://linux.die.net/man/3/strncpy
Important à noter: vous pouvez également utiliser memcpy au lieu de strncpy, mais il vous oblige à ajouter vos propres null-octets de fin.
Avertissement: Si il n'y a aucun octet null parmi les n premiers octets de src, la chaîne de caractères placée dans dest ne sera pas terminée par null.
Donc, memcpy et strncpy travail à peu près la même chose ici, et memcpy est plus efficace et moins sujettes à l'erreur.
OriginalL'auteur TonyArra
Je l'ai eu à travailler comme ça.
OriginalL'auteur Radar Blue
Vous pouvez également utiliser
sprintf
avec.10
précision format:OriginalL'auteur w.b
Il existe de nombreuses façons d'atteindre votre objectif:
Vous pouvez utiliser
snprintf
(plus sûr):Vous pouvez utiliser
strncat
si vous connaissez la destination a au moins 11 éléments:Vous pouvez utiliser
strlen
etmemcpy
(même hypothèse au sujet de la taille de destination):Vous pouvez utiliser une boucle (même hypothèse au sujet de la taille de destination):
Vous pourriez, mais ne devrait pas utiliser
strncpy()
OriginalL'auteur chqrlie