begin process at 2012 05 30 10:06:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

toupper


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

toupper

vendredi 18 juin 2010 à 13:38:27 | toupper

callas83

Comment utiliser "toupper" qui met les minuscules en majuscules svp ? :S
vendredi 18 juin 2010 à 14:14:13 | Re : toupper

CptPingu

Administrateur CodeS-SourceS
Regarde un peu sous Google, avant de poser des questions:
Premier lien en tapant "toupper" sous google:
http://www.cplusplus.com/reference/clibrary/cctype/toupper/

toupper ne fait qu'un seul caractère, donc il faut le faire en boucle sur tous tes caractères.

(PS: Pense à valider les réponses quand elles répondent à ta question.)
_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
vendredi 18 juin 2010 à 15:00:25 | Re : toupper

Arnotic

Administrateur CodeS-SourceS

Au lieu d'appeler x fois une fonction, il serait certainement judicieux de déplacer un pointeur sur la chaine et d'effectuer un -32 sur l'octet si celui est compris entre 97 et 122.

Un call n'est pas gratuit...

@+
Arnotic,
Admin CS
vendredi 18 juin 2010 à 15:42:55 | Re : toupper

CptPingu

Administrateur CodeS-SourceS

Un call n'est pas gratuit...


1) Ça peut être le cas, si:
- La fonction est "inlinée"
- Le compilateur optimise comme un grand ce genre de chose, en "inlinant" automagiquement

2) C'est un débutant, inutile de le noyer. Il optimisera vraiment quand ça sera nécessaire et qu'il aura plus d'expérience. Il est plus simple pour lui d'utiliser des manipulateurs de caractères.

3) Ou à défaut de soustraction on peut:
- Utiliser un masque (on pourrait aussi facilement l'adapter pour inverser la casse):
Code C/C++ :
#include <stdio.h>

void myToUpper(char* s)
{
  while (s && *s)
  {
    if (*s >= 'a' && *s <= 'z')
      *s ^= 32;
    ++s;
  }
}

void myToLower(char* s)
{
  while (s && *s)
  {
    if (*s >= 'A' && *s <= 'Z')
      *s ^= 32;
    ++s;
  }
}

int main(void)
{
  char buff[] = "Un petit Test !";

  printf("%s\n", buff);
  myToUpper(buff);
  printf("%s\n", buff);
  myToLower(buff);
  printf("%s\n", buff);

  return 0;
}

- Utiliser une table de translation:
http://www.google.com/codesearch/p?hl=en#XAzRy8oK4zA/libc/stdlib/toupper_.c&q=toupper&sa=N&cd=3&ct=rc

- Le faire par plusieurs caractères en même temps:
http://code.google.com/p/stringencoders/source/browse/trunk/src/modp_ascii.c

_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
vendredi 18 juin 2010 à 15:57:44 | Re : toupper

Arnotic

Administrateur CodeS-SourceS
Ben voilà, mieux vaut apprendre cela directement que de prendre de mauvaises habitudes.

Pour le code inliné, attention on pourrait être surpris (je parle avec VS) par le code généré...

@+
Arnotic,
Admin CS


Cette discussion est classée dans : toupper


Répondre à ce message

Sujets en rapport avec ce message

"toupper" et "tolower" [ par guitoulefoux ] Bonjour, Je cherche a convertir une phrase ("TruC112") tout en majuscule.D'apres plusieurs article sur ce site il faut utiliser "toupper" et "tolower" Comparer deux BSTR [ par vba_blitz ] Bonjour,Je souhaite comparer deux BSTR en c++. J'utilise ToUpper mais la ligne ( bstr1.toupper() = = bstr2.toupper ) ne fonctionne pas.Merci QT4 - Nom de Variable et Boucle [ par jpv424 ] Bonjour à tous ! Je viens à vous pour une petite question surement bête. Comment faire pour mettre en boucle un nom de variable du style : [code=cpp

Livres en rapport



Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales