Problème affichage texte en c
ainhoa_ok
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour/bonsoir, je suis débutante en C. Voici mon problème: je souhaite afficher chaque caractère de la phrase "je suis la" stocké dans un tableau. Le probleme c'est qu'il m affiche d'autre caractère. J'affiche cette chaine dans une fonction( elle se nomme cesar dans mon code) Voici une capture d'écran de ma console:

J'ai constaté que j'ai ce probleme pour toute les chaines ayant une longeur de 10 caractères.
Voici mon code:
J'espère que mon code est lisible. Je vous remercie pour votre aide. Normalement l'indentation n'est pas comme cela je vous pris de m'excuser.

J'ai constaté que j'ai ce probleme pour toute les chaines ayant une longeur de 10 caractères.
Voici mon code:
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>
int convertiraccent(wchar_t test, char* pteste,int i){
if(test==L'é' || test==L'è' || test==L'ê' || test==L'ë'){
pteste[i]='e';}
else if(test==L'à' || test==L'á' || test==L'â' || test==L'ã'|| test==L'ä' || test==L'å'){
pteste[i]='a';}
else if(test==L'ì' || test==L'í' || test==L'î' || test==L'ï'){
pteste[i]=i;}
else if(test==L'ò' || test==L'ó' || test==L'ô' || test==L'õ' || test==L'õ' || test==L'ö'){
pteste[i]='o';}
else if(test==L'ú' || test==L'û' || test==L'ù' || test==L'õ' || test==L'ü'){
pteste[i]='u';}
else{
return 1;}
}
int nonautoriser(wchar_t test){
wchar_t tab_interdit[]={L'×',L'Ø',L'Þ',L'ß',L'æ',L'Æ',L'þ',L'ð',L'+'};
for(int i=0;i<wcslen(tab_interdit);i++){
if(test==tab_interdit[i]){
return 0;
}
}
}
void verifieralphanumerique(wchar_t* saisi,char* pteste){
wchar_t tab_alphabet[]={L"abcdefghijklmnopqrstuvwxyz"};
wchar_t test;
for(int i=0;i<wcslen(saisi);i++){
test=saisi[i];
if(nonautoriser(test)!=0){
convertiraccent(test, pteste,i);
if(convertiraccent(test, pteste,i)==1){
pteste[i]=test;
}
}
}
}
void cesar(char* teste_message){
int i=0;
while(i<strlen(teste_message) && teste_message[i]!='\n'){
printf("le contenu du tableau est %c \n\n",teste_message[i]);
i++;
}
}
int main(void)
{
struct lconv *loc;
setlocale (LC_ALL, "");
loc=localeconv();
wchar_t message[200];
char message_converti[200];
fgetws(message, 200, stdin);
verifieralphanumerique(message,message_converti);
int i=0;
cesar(message_converti);
}
J'espère que mon code est lisible. Je vous remercie pour votre aide. Normalement l'indentation n'est pas comme cela je vous pris de m'excuser.
Configuration: Linux / Firefox 76.0
A voir également:
- Problème affichage texte en c
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Affichage double ecran - Guide
- Mettre un texte en majuscule - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, je pense que tu peux préserver l'indentation si tu précises "C" quand tu utilises les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je suggère que tu fasses des printf des strlen de tes chaines, cela t'aidera sans doute à comprendre ce qui se passe.
je suggère que tu fasses des printf des strlen de tes chaines, cela t'aidera sans doute à comprendre ce qui se passe.