PROBLEME
Ecrivez un programme qui affiche un texte fourni en entrée, après avoir effectué sur ce texte une rotation dans un sens ou dans l'autre, d'un certain nombre de caractères.
CONTRAINTES
- 1 <= N <= 100, où N est le nombre de caractères du texte.
- -100 <= R <= 100, où R indique le nombre de caractères de la rotation.
ENTREE
La première ligne de l'entrée contient un entier N : le nombre de caractères du texte.
La deuxième ligne contient un entier R : le nombre de caractères dont on doit faire tourner ce texte. Un nombre négatif correspond à une rotation vers la gauche, un nombre positif à une rotation vers la droite.
La troisième ligne contient le texte, composé de caractères majuscules et minuscules pouvant être accentués, de signes de ponctuation et de caractères '_', mais pas d'espaces.
SORTIE
Vous devez afficher une ligne sur la sortie : le texte d'entrée, après lui avoir appliqué la rotation indiquée.
CODE SOURCE
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned int N;
int R;
char text_in[150];
char text_out[150];
scanf("%d\n",&N);
scanf("%d\n",&R);
scanf("%s\n",text_in);
if(R==0)
strcpy(text_out,text_in);
else if(R<0)
{
int w=strlen(text_in);
strcpy(text_out,text_in-R);
strncpy(text_out+w+R,text_in,-R);
text_out[w+R]='\0';
}
else
{
int w=strlen(text_in);
strcpy(text_out,text_in+w-R);
strncpy(text_out+w-R,text_in,w-R);
text_out[w-R]='\0';
}
printf("%s\n",text_out);
return 0;
}
EXPLICATIONS
Pour écrire sur la sortie standard, on utilise la fonction printf().
Pour lire sur l'entrée standard, on utilise la fonction scanf().
|