Pour le défi d'aujourd'hui, vous devez écrire un programme ou une fonction qui alterne la casse d'une chaîne. Cependant, vous devez ignorer les caractères non alphabétiques. Cela signifie que chaque caractère alphabétique doit avoir une casse différente des caractères alphabétiques précédent et suivant. Ceci est légèrement plus complexe que de mettre en majuscule une lettre sur deux, par exemple. Si vous prenez une chaîne telle que
hello world
et convertissez tous les autres caractères en majuscules, vous obtiendrez:
hElLo wOrLd
Comme vous pouvez le constater, la minuscule o
est suivie d'une minuscule w
. Ceci est invalide. Au lieu de cela, vous devez ignorer l'espace en nous donnant le résultat suivant:
hElLo WoRlD
Tous les caractères non alphabétiques doivent rester les mêmes. La sortie peut commencer par des majuscules ou des minuscules, dans la mesure où elle alterne régulièrement. Cela signifie que les résultats suivants seraient également une sortie acceptable:
HeLlO wOrLd
Votre programme devrait fonctionner quel que soit le cas de l'entrée.
La chaîne d'entrée ne contiendra jamais que l' ASCII imprimable , vous n'avez donc pas à vous soucier des caractères non imprimables, des nouvelles lignes ou de l'unicode. Votre soumission peut être un programme complet ou une fonction, et vous pouvez utiliser les entrées et les sorties dans un format raisonnable. Par exemple, arguments de fonction / valeur de retour, STDIN / STDOUT, lecture / écriture d'un fichier, etc.
Exemples:
ASCII -> AsCiI
42 -> 42
#include <iostream> -> #InClUdE <iOsTrEaM>
LEAVE_my_symbols#!#&^%_ALONE!!! -> lEaVe_My_SyMbOlS#!#&^%_aLoNe!!!
PPCG Rocks!!! For realz. -> PpCg RoCkS!!! fOr ReAlZ.
This example will start with lowercase -> tHiS eXaMpLe WiLl StArT wItH lOwErCaSe
This example will start with uppercase -> ThIs ExAmPlE wIlL sTaRt WiTh UpPeRcAsE
A1B2 -> A1b2
Puisqu'il s'agit de code-golf , des échappatoires standard s'appliquent et la réponse la plus courte en octets est gagnante!
cowsay