Tout d'abord, quel est l'intérêt de mettre cette fonction en "public" ?
Le mieux reste de ne rien mettre, comme je l'ai fait et de la mettre dans un include.
Et si la fonction n'est pas utilisée et que l'on veut éviter un warning, il suffit de la déclarée en "stock".
Ensuite, le fait de retourner la chaîne n'est qu'une question de commodité et si la fonction n'est pas déclaré en public, il n'y a pas de problème à l'utiliser directement :
NB : J'ai mis des commentaires dans le script pour scott
#include <a_samp>
// Stock permet d'éviter les warning si la fonction n'est pas utilisée
stock TextMinInMaj (Text[])
{
// On parcourt la totalité de la chaîne
for(new i = 0; i < strlen(Text); i++)
{
// Si le caractère courant de la chaîne est un lettre minuscule (a-z)
if(Text[i] >= 'a' && Text[i] <= 'z')
{
// On la transforme en majuscule
Text[i] -= 'a' - 'A';
}
// Sinon, c'est un autre caractère
else
{
// Selon le caractère courant on le transforme en majuscule
switch (Text[i])
{
case 'à', 'â' :
{
Text[i] = 'A';
}
case 'é', 'è', 'ê':
{
Text[i] = 'E';
}
case 'î' :
{
Text[i] = 'I';
}
case 'ô' :
{
Text[i] = 'O';
}
case 'ù', 'û' :
{
Text[i] = 'U';
}
case 'ç' :
{
Text[i] = 'C';
}
}
// Tous les autres caractères (majuscule, nombre, ponctuation) restent inchangés
}
}
// On retourne la chaîne pour pouvoir utiliser la fonction directement dans printf, format, ...
return Text;
}
main ()
{
new Chaine[]="Hello éùùôîè";
printf ("%s", TextMinInMaj (Chaine));
}
public OnGameModeInit ()
{
return 1;
}
Pour chneubeul :
Effectivement, on rencontre de plus en plus d'accent sur les majuscules en français mais je disais normalement les majuscules n'ont pas d'accent.
D'ailleurs, essayes de faire un "é" majuscule avec l'accent sur ton clavier .... pas facile hein, et pour cause, le "é" majuscule s'écrit E.
Mais si on veut vraiment des accents sur les majuscules, ma fonction est facilement modifiable mais elle deviendra beaucoup plus longue :
// Selon le caractère courant on le transforme en majuscule
switch (Text[i])
{
case 'â' :
{
Text[i] = 'Â';
}
case 'à' :
{
Text[i] = 'À';
}
...
NB : Pour ceux qui voudrait modifier la fonction, il est possible d'utiliser charmap qui est fourni dans Windows pour avoir tous les caractères accentués. Il suffit de sélectionner un caractère, de cliquer sur le bouton "Copier" puis d'aller le coller dans le script.
++
Syg