Preguntas urgentes sobre programación en lenguaje C, espera en línea, ¡todos puntos extra por las respuestas!
//Puntos adicionales, he estado trabajando en ello durante mucho tiempo y la depuración fue exitosa
#include
# include
#include
#define MAX_PATH 512
typedef struct _Char //Estructura de letras
{
nombre de char; //nombre de letra
int count; //count
} Char;
void Menu( char *CopyRight) // Menú de bienvenida
{
printf("______________________________________________________________________________\n");
printf(" ");
printf(CopyRight) ;
printf("______________________________________________________________________________\n");
printf(" 1: Problema de ejecución 1\n");
printf(" 2: Ejecutar pregunta 2\n");
printf(" 3: Ejecutar pregunta 3\n");
printf(" 4: Ejecutar pregunta 4\n ");
printf(" 5: Problema de ejecución 5\n");
printf("______________________________________________________________________________\nOpción (otros caracteres para salir del programa):"); p>
}
Pregunta vacía 1(char *cadena, char *usuario)
{
int cnt = 0, i;
for (i= 0; usuario[i]; i++)
{
if ( (usuario[i] >= 'a' && usuario[i] <= 'z') || ( usuario[i] >= 'A' && usuario[i] <= 'Z') )
{
str[cnt++] = usuario[ i];
}
}
str[cnt] = '\0';
printf("\nletra:% s\n", str );
printf("Número de letras: %d\n", cnt);
}
void Pregunta2(char *cadena, char *usuario )
{
int i, cnt = 0;
for (i=0; usuario[i]; i++)
{
>
if (usuario[i] >= '0' && usuario[i] <= '9')
{
str[cnt++] = '$';
str[cnt++] = usuario[i];
}
else
{
str[ cnt++] = usuario[i];
}
}
str[cnt] = '\0';
printf( "El resultado procesado es: %s\n", str);
}
void Initialize(Char *StrChar) //Inicializar estructura
{
int i, j;
for (i=0; i<26; i++)
{
StrChar[i ]. count = 0; //Establece el número en 0
StrChar[i].name = 'a' + i //Asigna un nombre
}
< p; > para (j=0; i<52; i++, j++){
StrChar[i].count = 0;
StrChar[i ] .name = 'A'+j;
}
}
Pregunta vacía3(char *cadena, char *usuario)
{
int i, j;
Char StrChar[52];
Inicializar(StrChar); //Inicialización
for ( i=0; usuario[i]; i++)
{
para (j=0; j<52; j++)
{
if (StrChar[j].name == usuario[i]) //Comparación
{
StrChar[j].count++;
romper;
}
}
}
para (i=0; i<26; i++)
{
printf("Letra: %c\t minúscula: %d, mayúscula: %d, total de mayúsculas y minúsculas: %d\n",
StrChar[ i ].nombre, StrChar[i].count, StrChar[i+26].count, StrChar[i].count+StrChar[i+26].count);
}
}
void Question4(char *b, char *a) //Mismo nombre que tu pregunta, a y b
{
int i, cnt = 0;
for (i=0; a[i]; i++)
{
if ( a[i] >= 'a ' && a[i] <= 'z')
{
b[cnt++] = a[i] - 32;
}
else if (a[i] >= 'A' && a[i] <= 'Z')
{
b[cnt++] = a[i ] + 32;
> }
más
{
b[cnt++] = a[i];
}
}
b[cnt] = '\0';
printf("Cadena procesada: %s\n", b);
} p>
void Question5(char *str, char *user)
{
int i, cnt = 0;
char _char ; p>
printf("Ingrese los caracteres que desea eliminar:");
scanf("%c", &_char);
for (i=0 ; usuario[i]; i++)
{
if (usuario[i] != _char)
{
str[ cnt++ ] = usuario[i];
}
}
str[cnt] = '\0';
printf( " La cadena eliminada es: %s\n", str);
}
int main(void)
{
char *CopyRight = "ActSoft Software Studio presenta! Copyright(c)ActSoft 2011. ¡Todos los derechos reservados!\n";
char opt;
char str[MAX_PATH], usuario[MAX_PATH ];
while (1)
{
Menú(CopyRight);
opt = getch();
if (!(opt >= '1' && opt <= '5'))
{
exit(0);
}
printf("\nIngrese una cadena de caracteres:");
gets(user);
switch (opt)
{
case '1':
Question1(str, user); //Solución a la pregunta 1
break;
case '2':
Question2(str, user); //Solución a la pregunta 2
break;
case '3':
Pregunta3(str, usuario); //Solución a la pregunta tres
descanso;
caso '4':
Pregunta4(str , usuario) ; //Solución a la pregunta 4
break;
case '5':
Question5(str, user); //Solución a la pregunta 5
romper;
predeterminado: romper;
}
}
devolver 0;
}