Posez votre question Signaler

Langage c

k... - Dernière réponse le 4 juin 2003 à 16:36
bonjour
je cherche le code pour remplacer ts caractere precedé d'un espace par sa majuscule
merci
une debutante en langage c
Lire la suite 

Langage c »

Suggestions
14 réponses
Réponse
+0
moins plus
bonjour,

je propose:
void remplace(char *str)
{
char *ptr;
ptr = strchr(str, ' ');
if (ptr && (ptr + 1) != '\0')
*ptr = toupper(*ptr);
}
il manque une boucle evidemment...

--
pouet
Derrick - 4 juin 2003 à 13:59
Ouais bien sur ...
Pourquoi faire simple quand on peux faire compliqué ?
pouet - 4 juin 2003 à 14:03
peux tu exprimer clairement ta pensee s il te plait?

--
pouet
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Alors il faut d'abord commencer par construire l'algorithme. Pour résoudre ce problème.

quelques éléments en vrac :
Recherché le caractère ' '
ensuite le caractère suivant et remplacé par le caractère qui se trouve 32 place avant la lettre en minuscule.

exemple
A : 65
a : 97

x: 120
X: 88

rappel: un caractère est représenté par un entier dans la table ascii
exemple
for(int i=0;i<255;i++)
println("%c"i);

Si ça peut aider ...
k... - 3 juin 2003 à 20:24
merci pour ta reponse
j'ai étudié cette possibilité mais comment recuperer ma chaine de caractere une fois modifiée ?
lof. - 4 juin 2003 à 10:58
Si je ne dis pas de c***ie et c'est pas gagné en c.
mais en C un chaine de caractères est un tableau de caractère char[] donc tu peux l'utiliser sous cette forme.
non ??
Ajouter un commentaire
Réponse
+0
moins plus
Un ptit truc pour la clarté en C : n'utilise pas le code ASCII, utilise 'A' pour le code ASCII de 'A' par exemple

@++

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
pouet - 4 juin 2003 à 14:02
pour la clarte, oui. mais pas seulement.
toutes les machines n ont pas un jeu de caractere ASCII.
croire que 'a' = 64 est une erreur, de la meme maniere que croire que
'A' - 'a' = 32
pour le probleme pose, il _faut_ utiliser toupper().

--
pouet
Ajouter un commentaire
Réponse
+0
moins plus
Amis de la simplicité bonjour !

je propose de faire une boucle qui parcours la chaine de caractère. A chaque tour de boucle faire un test :
si c un espace, alors faire un nouveau test :

if(toupper(chaine[compteur-1])
{
chaine[compteur-1]=toupper(chaine[compteur-1]);
}

A+

<------Galfus------>
In penguin we trust
pouet - 4 juin 2003 à 15:22
salut,

c est pas simple, tu fais un test inutile.
ca c est simple:
*ptr = toupper(*ptr);

et accessoirement ton code est faux.
il est dit "_precede_ d un espace".

--
pouet
Galfus - 4 juin 2003 à 16:19
dsl,
je voulais dire +1...
et je vois pas pkoi j'ai 1 test de trop : 1 test pour vérifier que c un espace et un autre pour vérifier que la lettre n'est pas déjà en maj

<------Galfus------>
In penguin we trust
pouet - 4 juin 2003 à 16:36
extrait du man de toupper:
RETURN VALUES
If the argument is a lower-case letter, the toupper() function returns
the corresponding upper-case letter if there is one; otherwise the argu-
ment is returned unchanged.

--
pouet
Ajouter un commentaire
Réponse
+0
moins plus
un de mes potes pariculierement reloud me dit que les pointeurs c est complique.
je reecris mais c est moins beau :(

#include <stdio.h>
#include <ctype.h>

void remplace(char *string)
{
unsigned int i;

for (i = 0; string[i] != '0'; i++)
{
if (string[i] == ' ')
string[i +1] = toupper(string[i + 1]);
}
}

int main(int argc, char *argv[])
{

remplace(argv[1]);
puts(argv[1]);
return 0;
}

$gcc -Wall -ansi -pedantic test.c -o tutu
$./tutu 'pouet est tres beau'
pouet Est Tres Beau

--
pouet
Ajouter un commentaire
Réponse
+0
moins plus
moi je proposerai de le faire en caml ca serait bien mieux, ca elevrai enfin le niveau de nos amateurs, car ne pas coder en C avec des pointeurs, faut pas etre doue.
Ajouter un commentaire
Ce document intitulé « langage c » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook