Chi sa, mi puo' tradurre dal linguaggio C++ al linguaggio C questi programmi ???
SENZA LA LIBRERIA ctype.h MA CON LA LIBREARIA string.h e le sue relative funzioni corrispondenti a quella della ctype.h
Grazie infinitamente. 10 PUNTI ASSICURATI
1°:
#include <stdio.h>
#include <ctype.h>
char codice[] =
{
'E', /* A */
'C', /* B */
'D', /* C */
'F', /* D */
'I', /* E */
'G', /* F */
'H', /* G */
'J', /* H */
'O', /* I */
'K', /* J */
'L', /* K */
'M', /* L */
'N', /* M */
'P', /* N */
'U', /* O */
'Q', /* P */
'R', /* Q */
'S', /* R */
'T', /* S */
'V', /* T */
'Y', /* U */
'W', /* V */
'X', /* W */
'Z', /* X */
'A', /* Y */
'B', /* Z */
};
int main()
{
int c;
char x;
while((c=getchar())!='\n');
while((c=getchar())!=EOF)
{
if (isalpha(c))
x = codice[toupper(c) - 'A'];
else if (isdigit(c))
x = (c - '0' + 1) % 10 + '0';
else
x = c;
if (islower(c))
putchar(tolower(x));
else
putchar(x);
}
return 0;
}
2°:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char trasforma(char c)
{
if(isdigit(c))
{
c++;
if(c > '9') c='0';
}
else if(isalpha(c))
{
int minuscolo=islower(c);
c=toupper(c);
switch(c)
{
case 'A': c='E'; break;
case 'E': c='I'; break;
case 'I': c='O'; break;
case 'O': c='U'; break;
case 'U': c='Y'; break;
case 'Y': c='A'; break;
case 'Z': c='B'; break;
default :
{
c++;
if(c == 'E' || c == 'I' || c == 'O' ||
c == 'U' || c == 'Y')
c++;
}
}
if(minuscolo)
c=tolower(c);
}
return c;
}
int main()
{
int N;
char buffer[81];
FILE *fileIN =fopen( "input.txt", "r");
FILE *fileOUT=fopen("output.txt", "w");
fgets(buffer, 80, fileIN);
N=atoi(buffer);
for(int i=1; i <= N; i++)
{
fgets(buffer, 80, fileIN);
for(int j=0; buffer[j]!='\0'; j++)
buffer[j]=trasforma(buffer[j]);
fputs(buffer, fileOUT);
}
fclose(fileIN);
fclose(fileOUT);
return 0;
}
3°:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char trasforma(char c)
{
int minuscolo=islower(c);
c=toupper(c);
switch(c)
{
case 'A': c='E'; break; case 'B': c='C'; break;
case 'C': c='D'; break; case 'D': c='F'; break;
case 'E': c='I'; break; case 'F': c='G'; break;
case 'G': c='H'; break; case 'H': c='J'; break;
case 'I': c='O'; break; case 'J': c='K'; break;
case 'K': c='L'; break; case 'L': c='M'; break;
case 'M': c='N'; break; case 'N': c='P'; break;
case 'O': c='U'; break; case 'P': c='Q'; break;
case 'Q': c='R'; break; case 'R': c='S'; break;
case 'S': c='T'; break; case 'T': c='V'; break;
case 'U': c='Y'; break; case 'V': c='W'; break;
case 'W': c='X'; break; case 'X': c='Z'; break;
case 'Y': c='A'; break; case 'Z': c='B'; break;
case '0': c='1'; break; case '1': c='2'; break;
case '2': c='3'; break; case '3': c='4'; break;
case '4': c='5'; break; case '5': c='6'; break;
case '6': c='7'; break; case '7': c='8'; break;
case '8': c='9'; break; case '9': c='0'; break;
}
if(minuscolo)
c=tolower(c);
return c;
}
int main()
{
int N;
char buffer[81];
FILE *fileIN =fopen( "input.txt", "r");
FILE *fileOUT=fopen("output.txt", "w");
fgets(buffer, 80, fileIN);
N=atoi(buffer);
for(int i=1; i <= N; i++)
{
fgets(buffer, 80, fileIN);
for(int j=0; buffer[j]!='\0'; j++)
buffer[j]=trasforma(buffer[j]);
fputs(buffer, fileOUT);
}
fclose(fileIN);
fclose(fileOUT);
return 0;
}
vi prego.. è urgente...!!