J'ai besoin de commencer avec ma clause de non responsabilité norme que je n'ai pas beaucoup travaillé avec le C depuis l'école. Avec cela à l'esprit:
Vous n'avez pas déclaré i et j correctement. Ils doivent être déclarés avec le type de données (int i, j;). Déclaration de variables est globalement déconseillée dans la plupart des cas, elles doivent donc être déclarées à l'intérieur de la fonction rev et
inbuff doivent être déclarées à l'intérieur principal. Vous n'avez pas besoin d'un tableau de caractères pour tenir le résultat car à inverser la chaîne que vous échangeront les caractères extérieurs et intérieurs dans le même tableau de caractères. Vous n'aurez pas besoin d'une valeur de retour parce que le nom du tableau est une sorte de pointeur et quand vous en passer à une fonction vous êtes de passage de son adresse, donc la fonction ne fonctionnera sur-le directement.
Pour échanger les caractères interne et externe, vous devrez utiliser le
strlen () fonction pour connaître le nombre de caractères dans la chaîne, et vous aurez besoin d'inclure l'entête du fichier
string.h .
strlen () retourne le nombre de caractères dans la chaîne de caractères pour la chaîne
inhabituel aura une longueur de 7. Depuis le tableau de caractères qui contient la chaîne est indexé à zéro, le dernier caractère est habituellement
strlen (buff) - 1 ou
inbuf [6] dans ce cas. Toutefois, un problème supplémentaire est le
fgets () comptera le caractère de nouvelle ligne à la fin de la chaîne comme un caractère valide, si le dernier caractère que nous voulons inverser sera l'avant-dernier ou
strlen (buff) -2 Votre fonction doit ressembler à quelque chose comme ça, ou du moins c'est ainsi que je l'ai fait tout à l'heure (j'ai utilisé au lieu de I intérieure et extérieure, au lieu de J pour les noms de variables parce que je pensais qu'ils seraient plus descriptives).
void rev(char* s)
{
int inner, outer= strlen(s)-2;
char temp;
for (inner=0; inner < outer; inner++, outer--)
{
temp = s[inner];
s[inner] = s[outer];
s[outer] = temp;
}
}
- void rev(char* s)
- {
- int inner, outer= strlen(s)-2;
- char temp;
-
- for (inner=0; inner < outer; inner++, outer--)
- {
- temp = s[inner];
- s[inner] = s[outer];
- s[outer] = temp;
- }
- }
Free Programming Resources