Obtenir une partie d'un tableau de char
J'ai l'impression que c'est vraiment une question idiote, mais je n'arrive pas à trouver une réponse, n'importe où!
Est-il possible d'obtenir un groupe de caractères à partir d'un tableau de char? jeter quelques pseudo-code:
char arry[20] = "hello world!";
char part[10] = arry[0-4];
printf(part);
de sortie:
hello
Oui, puis-je obtenir un segment de caractères à partir d'un tableau comme ça, sans boucle et obtenir leur char par char ou la conversion de chaînes de caractères afin que je puisse utiliser substr()?
OriginalL'auteur Curlystraw | 2011-01-23
Vous devez vous connecter pour publier un commentaire.
En bref, pas. C-style "strings" il suffit de ne pas travailler de cette façon. Vous devrez utiliser un manuel de boucle, ou
strncpy()
, ou de le faire via C++std::string
fonctionnalité. Étant donné que vous êtes en C++, vous pouvez tout faire avec les chaînes C++!Note
Comme il arrive, par votre exemple particulier d'application, vous pouvez le faire simplement par le biais de la fonctionnalité offerte par
printf()
:réponse ci-dessous utilise les chaînes C++, et est sacrément élégant, si vous me demandez!
OriginalL'auteur Oliver Charlesworth
Vous pouvez utiliser
memcpy
(oustrncpy
) pour obtenir une sous-chaîne:Sur un autre aspect de votre code, notez que cela
printf(str)
peut conduire à des vulnérabilités de chaîne de format sistr
contient douteuses en entrée.printf
vulnérabilités.OriginalL'auteur Jeremiah Willcock
Comme Oli dit, vous auriez besoin d'utiliser le C++
std::string
fonctionnalité. Dans votre exemple:std::string part(hello, 0, 5);
...OriginalL'auteur Moo-Juice
Bien, vous faire oublier les deux grandes approches. La seule chose à laquelle je pense serait de définir vos propres sous-chaîne type de travailler à partir des tableaux de caractères:
OriginalL'auteur Keith