je fait un programme qui supprime les espaces et fait une chaîne de majuscules par les directives de préprocesseur .Son ne change pas en majusculesdirective préprocesseur ne fonctionne pas
#include <stdio.h>
#include <conio.h>
# define TOUPPER(x) (x-32)
void main(void)
{
int i,j;
char str[100],*p;
clrscr();
printf("Enter the string:\n");
gets(str);
for(i=0; ;i++)
{
if(str[i]=='\0')
break;
if(str[i]==' ')
{
for(j=i; ;j++)
{
str[j]=str[j+1];
if(str[j]=='\0')
break;
}
}
if(str[i]<='a'||str[i]>='z')
{
*p=str[i];
TOUPPER('p');
}
}
puts(str);
getch();
}
Existe-t-il une raison particulière pour laquelle vous n'utilisez pas les fonctions de bibliothèque 'islower' et' toupper'? –
On me dit de faire par des directives de préprocesseur. (Les directives du préprocesseur fonctionnent plus vite que les fonctions) –
Merci beaucoup!Autant que ma connaissance dit quelque chose comme ceci devrait également fonctionner: TOUPPER (& str [i]); mais ça ne marche jamais. –