Je vais essayer d'expliquer le mieux possible :)
Prennez par exemple cette chaine ->"Salut. ca va bien?"
Le "c" de "ca" est en minuscule, donc ma fonction va le mettre en majuscule, en gros c'est pour mettre tous les caractère de début de phrase(ceux qui suive les . ou ! ou ?) en majuscule.
Bon vous allez me dire, à quoi ca va me servir?, bien à vrai dire je sais pas :) mais lorsque l'on écrit un Texte(n'importe quoi) et bien c'est toujours plus beau quand on à une majuscule au début de nos phrase, non? Bref ce n'est qu'un exemple donc faite ce que vous voulez avec! :P
Source / Exemple :
#include <string.h>
#include <stdio.h>
// Prototype
void UpPointChar(char *String);
// Entré du programme
int main()
{
// Chaine avec laquel on va faire le teste(J'ai essayer avec un fichier d'environ 20ko et ca fonctionne bien :))
char MaChaine[] = "salut ca va bien? moi super! que fais-tu de bon?moi pas grand chose :).";
// Affiche la chaine avant les modification
cout << "Voici la chaine avant la modification:" << endl;
cout << MaChaine << endl << endl;
// Modifie la chaine
UpPointChar(MaChaine);
// Affiche la chaine après modification
cout << "Voici la chaine après modification:" << endl;
cout << MaChaine << endl << endl;
// Et c'est terminer!
return 0;
}
// La fonction, je ne savais pas quel nom lui donner, désoler :P
void UpPointChar(char *String)
{
// Pour effectuer les boucles
unsigned int a = 0, i = 0;
// Connaître la longeur de la chaine
unsigned int stringlen = (strlen(String) - 1);
// Pour mettre les caractères en Majuscule
char cstring[2];
// Ajoute le NULL de fin de chaine
cstring[1] = 0;
// Si la chaine n'est pas vide(Si elle contient des caractères)
if (stringlen > 0)
{
// Si le premier caractères n'est pas un espaces
if (String[0] != ' ')
{
cstring[0] = String[0];
// Met le caractères en Majuscule
String[0] = *strupr(cstring);
// Incrémente le point de départ dans la chaine
i = 1;
}
// Commence la boucle(passe tous les caractères un à un)
for (i = i; i <= stringlen; i++)
{
// Vérifie si c'est un simple point, un point d'exclamation ou un point d'interrogation
if (String[i] == '.' || String[i] == '!' || String[i] == '?')
{
// C'est un point de fin de ligne(.!?)
for (a = (i + 1); a <= stringlen; a++)
{
// Recherche le caractère qui ce trouve après le point
if (String[a] != ' ')
{
// On la trouver
cstring[0] = String[a];
// On le met en Majuscule
String[a] = *strupr(cstring);
// Et on quitte la boucle
break;
}
}
// Incrément la position pour ne pas repasser les même caractères :)
i = a;
}
}
}
// C'est terminer!!!
}
Conclusion :
Créé et tester avec Dev-C++ 4. Il y à le même code dans le ZIP, avec l'exécutable...(console)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.