La conversion du cas d'un caractère en C implique l'utilisation des fonctions toupper()
et tolower()
du fichier d'en-tête ctype.h
. Ces fonctions prennent un seul caractère en entrée et renvoient respectivement l'équivalent en majuscules ou en minuscules. Pour convertir une chaîne entière, vous avez besoin de parcourir chaque caractère et d'appliquer la fonction appropriée. Le processus implique généralement ces étapes:
ctype.h
en-tête: Ce fichier d'en-tête contient les fonctions toupper()
et tolower()
. Sans cette inclusion, votre code ne se compile pas. for
) pour traverser chaque caractère de la chaîne d'entrée. toupper()
ou tolower()
: à l'intérieur de la boucle, pour convertir pour convertir pour convertir à UPPercase ou toupper()
à l'intérieur. Le résultat de cet appel de fonction doit être stocké dans la chaîne, en remplaçant le caractère d'origine. tolower()
#include <stdio.h> #include <ctype.h> #include <string.h> void toUppercase(char *str) { for (int i = 0; str[i] != '<pre class="brush:php;toolbar:false"><code class="c">#include <stdio.h> #include <ctype.h> #include <string.h> void toLowercase(char *str) { for (int i = 0; str[i] != '<pre class="brush:php;toolbar:false"><code class="c">#include <stdio.h> #include <ctype.h> #include <string.h> void caseConvert(char *str, int toUpper) { for (int i = 0; str[i] != '<🎝🎝🎝>'; i++) { if (toUpper) { str[i] = toupper(str[i]); } else { str[i] = tolower(str[i]); } } } int main() { char myString[] = "Hello, World!"; caseConvert(myString, 1); // Convert to uppercase printf("Uppercase string: %s\n", myString); caseConvert(myString, 0); // Convert to lowercase printf("Lowercase string: %s\n", myString); return 0; }
pointeur (
) comme entrée, modifiant la chaîne en place. N'oubliez pas que la modification de la chaîne nécessite directement que la chaîne n'est pas une chaîne littérale (par exemple, <🎝🎝🎝>), car les littéraux de chaîne sont souvent stockés dans une mémoire en lecture seule. char *str
Que sont les pièges courants à éviter lors de l'écriture d'une fonction C pour la conversion de cas?
ctype.h
: C'est l'erreur la plus courante. Sans cet en-tête, le compilateur ne reconnaît pas toupper()
et tolower()
. char myString[size];
ou de la mémoire allouée dynamiquement) pour stocker les chaînes que vous avez l'intention de modifier. toupper()
et tolower()
n'affectent que les caractères alphabétiques. Si vous devez gérer d'autres caractères (par exemple, nombres, symboles), vous pourriez avoir besoin de logique supplémentaire pour déterminer comment les traiter. Cette fonction
prend un argument booléen supplémentaire (#include <stdio.h> #include <ctype.h> #include <string.h> void toUppercase(char *str) { for (int i = 0; str[i] != '<pre class="brush:php;toolbar:false"><code class="c">#include <stdio.h> #include <ctype.h> #include <string.h> void toLowercase(char *str) { for (int i = 0; str[i] != '<pre class="brush:php;toolbar:false"><code class="c">#include <stdio.h> #include <ctype.h> #include <string.h> void caseConvert(char *str, int toUpper) { for (int i = 0; str[i] != '<🎝🎝🎝>'; i++) { if (toUpper) { str[i] = toupper(str[i]); } else { str[i] = tolower(str[i]); } } } int main() { char myString[] = "Hello, World!"; caseConvert(myString, 1); // Convert to uppercase printf("Uppercase string: %s\n", myString); caseConvert(myString, 0); // Convert to lowercase printf("Lowercase string: %s\n", myString); return 0; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!