Mon programme doit basculer les cas de lettres de certaines chaînes données. Par exemple, si les entrées sont les suivantes:
#include <stdio.h>
int my_len(char mystring[])
{
int i, len = 0;
for (i = 0; i <= 1001; i++)
{
if (mystring[i] != '\0')
{
len += 1;
}
else
{
break;
}
}
}
char upper_to_lower(char character)
{
if (character >= 'A' && character <= 'Z')
{
return character - 'A' + 'a';
}
return character;
}
char lower_to_upper(char character)
{
if (character >= 'a' && character <= 'z')
{
return character - 'a' + 'A';
}
return character;
}
int main()
{
char list[10][1000];
int i, count;
scanf("%d\n", &count);
for (i = 0; i < count; i++)
{
char temp[1000];
gets(temp);
strcpy(list[i], temp);
}
for (i = 0; i < count; i++)
{
//char f_temp[1000];
int j;
for (j = 0; j < my_len(list[i]); j++)
{
if (j == 0)
{
printf("%c", upper_to_lower(list[i][j]));
//f_temp[j] = lower_to_upper(list[i][j]);
}
else if (list[i][j-1] != ' ')
{
printf("%c", upper_to_lower(list[i][j]));
//f_temp[j] = upper_to_lower(list[i][j]);
}
else if (list[i][j-1] == ' ')
{
printf("%c", upper_to_lower(list[i][j]));
//f_temp[j] = lower_to_upper(list[i][j]);
}
}
//puts(f_temp);
printf("\n");
}
return 0;
}
4 Réponses :
Le code> retour code> est manquant dans my_len code>. Besoin retour len; code> comme dernière instruction dans cette fonction. P>
my_len code> Vous ne revenez pas avec len code>. li>
- dans
si (liste [i] [j-1] == '') code> et j == 0 code> cas que vous devez utiliser inférieur_to_upper code > fonction. li>
ol> Un peu de nettoyage:
C'est une astuce qui fonctionnera avec les caractères ASCII: L'explication est que le code ASCII pour 'A' est 65 et pour 'A' est 97.
Cela signifie que la distance entre lettres majuscules et lettres minuscules est de 32.
Ainsi, le 5ème bit va faire le tour. P> p>
Le meilleur moyen de déboguer est d'utiliser un débogueur ou même d'ajouter simplement des déclarations d'impression de débogage. Il y a beaucoup plus de débogage que vous puissiez faire vous-même avant de pouvoir vous demander de l'aide. Comment déboguer de petits programmes . Un gros problème est que
my_len code> ne renvoie rien.Vous avez d'autres problèmes. Mais c'est le principal. Par exemple, vous n'appelez jamais
inférieur_to_upper code> mais je ne sais pas si cela est intentionnel à ce stade de votre device / test. En outre, votre logique dansprincipal code> est beaucoup plus complexe qu'il n'a besoin d'être. Vos deux derniers cas font exactement la même chose dans le corps qui ne semble pas avoir de sens. Je vous conseille de partir et d'utiliser le débogueur maintenant. Débogage détaillé via donc n'est pas productif.