0
votes

Utilisez des fonctions pour convertir la chaîne en majuscules et en minuscule en C

Ceci est des devoirs et c'est la tâche que j'ai reçu:
Imprime la chaîne en majuscules et en minuscules Scindre la corde au milieu et imprime les deux parties avec "-" entre Exigences:

Conversion de la chaîne en majuscules et minuscules doit être effectuée dans les fonctions. Ces fonctions ne doivent rien retourner (void) et être appelées: string_upper, string_lower.
N'utilisez pas strlwr ou struppr.

Remarque: la longueur de la chaîne est toujours même.

Sortie attendue (avec la chaîne que vous recevez en entrée):

Le la chaîne en majuscule est 'abcdefgh'
La chaîne en minuscule est 'abcdefgh'
La scission de la chaîne en deux est 'ABCD - EFGH'

J'ai réussi à créer quelque chose qui fonctionne, mais il utilise le dosent fonctionne comme requis dans la tâche. Comment pouvez-vous faire cela avec des fonctions?

J'ai regardé autour de moi, mais je ne trouve aucun exemple de convertir des chaînes en majuscules et minuscules à l'aide de fonctions xxx


8 commentaires

Essayez i <= strlen (INTRISTRING) -> I . Peut-être aussi d'autres problèmes aussi.


Définir RightThalf [MID] = '\ 0'; quelque part


Ce n'est pas clair de votre question. Cela semble si simple. Veuillez expliquer avec laquelle des étapes évidentes que vous avez un problème. Définir une fonction vide? Appelez une fonction vide? Changez la fonction vide à quelque chose d'un mini-helloworld (c'est-à-dire d'imprimer une chaîne fixe)? Changer la fonction pour accepter un paramètre de chaîne? Appelez la fonction avec un paramètre de chaîne? Imprimez le paramètre String à l'intérieur de la fonction? Copier la valeur de chaîne sur un local? Traiter la chaîne locale? Décidez quelle partie du programme de travail pour entrer dans des fonctions?


... aussi i <= longueur; devrait être i


@ Joohanc C'est vrai, mais peut-être une omission auto-annulant due aux contrôles de la boucle étant obsolète.


Êtes-vous autorisé à utiliser toupper () et tolower () ? C'est la solution la plus facile et portable.


Concernant la fonction: obtient () Cette fonction a été amortie depuis des années et entièrement retirée du langage C dans les versions récentes de la norme C. Suggérez fortement en utilisant: Fgets (tampon, taille de (tampon), stdin); Remarque: fgets () inclura la nouvelle ligne de fin, donc devrait donc utiliser quelque chose comme: tampon [strSpn (tampon, "\ n")] = '\ 0'; pour éliminer la nouvelle ligne.


Le code doit être lu mes humains. Par conséquent, il ne devrait pas utiliser de chiffres «magiques». Par conséquent, les chiffres «magiques» doivent être remplacés par des constantes de caractères, comme dans: si (str [i]> = 'a' && str [i] <= 'z') . En outre, la méthode proposée ne fonctionnera que avec le jeu de caractères ASCII.


3 Réponses :


2
votes

Pour créer une fonction, supprimez simplement le code (par exemple la boucle pour la boucle) sur une fonction. N'oubliez pas de déclarer des variables auxiliaires (par exemple. int i). Comme si xxx

puis dans votre code principal, vous appelez xxx

au lieu de la boucle de la boucle.

faire la même chose pour string_lower.


0 commentaires

1
votes

Vous pouvez simplement mettre votre code pour convertir la chaîne en majuscules et minuscules dans des fonctions distinctes. comme ça. XXX


0 commentaires

1
votes

Si vous êtes autorisé à utiliser tolower () et toupper () , cela fonctionne: xxx

string_lower () est laissé comme un exercice pour le lecteur ...; -)


0 commentaires