Imprimer une partie du tableau de caractères

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).