Neste programa a matriz dinâmica de char *frase recebe
uma frase híbrida contendo dígitos e caracteres digitada pelo usuário.
O vetor de char Num [ 10 ]; inicializado com dígitos
de 0 a 9 serve de espelho para char *frase; fazendo comparações um por um
e os que forem iguais, isto é, estiverem presentes em char Num [ 10 ]; são separados.
Então *frase é imprimida sem os dígitos que possuiia originalmente;
Más ainda não está tudo terminado, temos que imprimir
somente os dígitos da frase original digitada pelo usuário.
O primeiro passo foi descobrir o tamanho dos dois vetores de char que são: *frase e Num [ ];
Agora que já sabemos o tamanho de *frase e de Num [ ];
graças a função strlen(); Fizemos mais uma comparação,
e copiamos no vetor dinâmico de char *Vet; os resultados que foram os dígitos extraídos de *frase.
E como é obrigação nossa, bons programadores de linguagem C,
usamos a função free(); para liberar as memórias alocadas dinamicamente.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
uma frase híbrida contendo dígitos e caracteres digitada pelo usuário.
O vetor de char Num [ 10 ]; inicializado com dígitos
de 0 a 9 serve de espelho para char *frase; fazendo comparações um por um
e os que forem iguais, isto é, estiverem presentes em char Num [ 10 ]; são separados.
Então *frase é imprimida sem os dígitos que possuiia originalmente;
Más ainda não está tudo terminado, temos que imprimir
somente os dígitos da frase original digitada pelo usuário.
O primeiro passo foi descobrir o tamanho dos dois vetores de char que são: *frase e Num [ ];
Agora que já sabemos o tamanho de *frase e de Num [ ];
graças a função strlen(); Fizemos mais uma comparação,
e copiamos no vetor dinâmico de char *Vet; os resultados que foram os dígitos extraídos de *frase.
E como é obrigação nossa, bons programadores de linguagem C,
usamos a função free(); para liberar as memórias alocadas dinamicamente.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <conio.h>
void Moldura ( int a, int c, int b, int d, int e, int f ) {
textbackground ( 0 );
for ( a = e; a <= c; a++ )
for ( b = f; b <= d; b++ ) {
gotoxy ( b, a );
textbackground ( 15 );
printf ( "
" );
}
}
int main ( ) {
system ( "title
FRASE - SEPARANDO DÍGITOS" );
char *Vet;
Vet = ( char* ) malloc ( 50 );
int h = 0, k, i, j, lenv, len_v, t;
char *frase = 0;
frase = ( char* ) malloc ( 50 );
char Num [ 10 ] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
Moldura ( 2, 24, 2, 78, 2, 3 );
textcolor ( 12 );
gotoxy ( 28, 3 );
printf ( "FRASE -
SEPARANDO DÍGITOS" );
textcolor ( 9 );
gotoxy ( 16, 5 );
printf ( "Digite uma frase
==> " );
textcolor ( 12 );
scanf ( "%50[^\n]s", frase );
t = strlen ( frase );
textcolor ( 9 );
gotoxy ( 16, 7 );
printf ( "Frase digitada
==> " );
textcolor ( 12 );
for ( i = 0; i < t; i++ ) {
printf ( "%c", frase [ i ] );
}
lenv = strlen ( Num );
len_v = strlen ( frase );
textcolor ( 9 );
gotoxy ( 16, 9 );
printf ( "Imprimindo
abaixo só os caracteres da frase" );
textcolor ( 12 );
gotoxy ( 16, 11 );
for ( i = 0; i < len_v; i++ ) {
for ( j = 0; j < lenv; j++ )
if ( frase [ i ] == Num [ j ] )
break;
if ( j == lenv )
printf ( "%c", frase [ i ] );
}
getche ( );
for ( i = 0; i < len_v; i++ ) {
for ( j = 0; j < lenv; j++ ) {
if ( Num [ j ] == frase [ i ] ) {
Vet [ h ] = frase [ i ];
h++;
}
}
}
k = h;
textcolor ( 9 );
gotoxy ( 16, 13 );
printf ( "Imprimindo
abaixo só os dígitoss da frase" );
textcolor ( 12 );
gotoxy ( 26, 15 );
for ( h = 0; h < k; h++ ) {
printf ( " %c ", Vet [ h ] );
}
getche ( );
textcolor ( 9 );
gotoxy ( 20, 17 );
Sleep ( 1800 );
printf ( "Por:
" );
textcolor ( 5 );
printf ( "Samuel
Lima" );
textcolor ( 0 );
gotoxy ( 20, 18 );
printf ( "sa_sp10@hotmail.com" );
Sleep ( 1800 );
textcolor ( 12 );
gotoxy ( 37, 22 );
printf ( "MUITO
OBRIGADO" );
getche ( );
free ( frase );
free ( Vet );
return 0;
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.