Alors:
char *someCArray; # something
Je veux imprimer “ethin” de “quelque chose”.
Vous pouvez utiliser le printf
précision printf
#include int main(void) { char s[] = "something"; int start = 3; int len = 5; printf("%.*s\n", len, s + start); return 0; }
Code également publié sur codepad: http://codepad.org/q5rS81ox
Cela ferait le travail compte tenu que vous souhaitez imprimer uniquement ” ethin ” pas ” ething “.
Comme @Mahesh l’a dit dans son commentaire, vous devez indiquer la position de début et de fin à partir de laquelle vous souhaitez imprimer les caractères pour rendre votre programme plus général.
Char *p ="Something";
char *temp=p;
// Considérant que vous pourriez avoir besoin à un moment donné de l’adresse de base de votre chaîne.
temp=temp+3;
while(*temp!='g')
printf("%c",*temp++);
Si vous souhaitez être plus précis sur vos besoins, nous pouvons vous aider davantage. Ce sont les bases du langage C, vous devez donc étudier à fond les tableaux, les pointeurs en c.
MODIFIER:
Je ne pourrai pas vous donner le code complet car cela irait à l’encontre des règles de Stackoverflow et de la devise qui ressemble à ” Référentiel technique et paradis du paradis” pour les programmeurs. Je ne peux donc que vous donner la logique.
Continuez à imprimer des caractères jusqu’à ce que les positions de début et de fin deviennent égales ou que leur différence devienne nulle.Vous pouvez choisir l’une des deux méthodes ci-dessus.
Essayer
char* strSth = "something"; std::ssortingng strPart; strPart.assign(strSth+3,strSth+8); std::cout << strPart;
Le résultat sera: "ethin"
#include int main() { char a[1024] = "abcdefghijklmnopqrstuvwxyz"; printf("Characters 0 through 2 of a[]: %.3s\n", a); printf("Characters 10 through 15 of a[]: %.6s\n", &a[10]); return 0; }
Imprime ceci
Characters 0 through 2 of a[]: abc Characters 10 through 15 of a[]: klmnop
La notation “% .Ns” dans la chaîne printf est “% s” avec un spécificateur de précision. Consultez la page de manuel printf (3).