Este é mais um programa onde trabalho com remoção em estrutura de dados,
e neste algo mais avançado foi aplicado, a remoção da string procurada
acontece na própria impressão da matriz, isto é se for encontrada.
A função responsável pela remoção da string encontrada é a memset();
Da biblioteca padrão string.h;
Estudem esta incrível função, todo programador deve estudar memset();
Usando o raciocínio e a lógica muitas outra coisas se podem fazer
usando esta poderosa função.
Na matriz, usei um poema de "Carlos Drummond de Andrade".
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
e neste algo mais avançado foi aplicado, a remoção da string procurada
acontece na própria impressão da matriz, isto é se for encontrada.
A função responsável pela remoção da string encontrada é a memset();
Da biblioteca padrão string.h;
Estudem esta incrível função, todo programador deve estudar memset();
Usando o raciocínio e a lógica muitas outra coisas se podem fazer
usando esta poderosa função.
Na matriz, usei um poema de "Carlos Drummond de Andrade".
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define lin 12
#define col 43
void Janela5 ( ) {
int n, c;
c = 0;
system ( "Color 00" );
for ( n = 2; n <= 33; n++ )
for ( c = 2; c <= 78; c++ ) {
gotoxy ( c, n );
textbackground ( WHITE );
printf ( " " );
}
}
int main ( ) {
system ( "title
PESQUISANDO E APAGANDO OCORRÊNCIAS"
" DE STRING EM
MATRIZ" );
char texto [ lin ] [ col ] = {
"No Meio do
Caminho ",
"Carlos
Drummond de Andrade ",
"No meio do
caminho tinha uma pedra ",
"Tinha uma
pedra no meio do caminho ",
"Tinha uma
pedra ",
"No meio do
caminho tinha uma pedra. ",
"Nunca me
esquecerei desse acontecimento ",
"Na vida de
minhas retinas tão fatigadas. ",
"Nunca me
esquecerei que no meio do caminho",
"Tinha uma
pedra ",
"Tinha uma
pedra no meio do caminho ",
"No meio do
caminho tinha uma pedra. " };
int i, j, k, cont = 0, lenv;
char *pt;
int a = 0;
pt = ( char * ) malloc ( 28 );
Janela5 ( );
textcolor ( LIGHTRED );
gotoxy ( 13, 3 );
printf ( "PESQUISANDO E
APAGANDO OCORRÊNCIAS"
" DE STRING EM
MATRIZ" );
textcolor ( BROWN );
gotoxy ( 25, 7 );
printf ( "Programa
desenvolvido por:" );
textcolor ( GREEN );
gotoxy ( 52, 7 );
printf ( "Samuel Lima" );
textcolor ( BLACK );
gotoxy ( 34, 9 );
printf ( "sa_sp10@hotmail.com" );
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 30, 23 );
printf ( "PRESSIONE QUALQUER TECLA" );
getche ( );
gotoxy ( 25, 7 );
clreol ( );
gotoxy ( 52, 7 );
clreol ( );
gotoxy ( 34, 9 );
clreol ( );
gotoxy ( 30, 23 );
clreol ( );
textcolor ( LIGHTBLUE );
gotoxy ( 29, 5 );
printf ( "Abaixo a
matriz imprimida" );
for ( i = 0; i < lin; i++ ) {
gotoxy ( 13, i + 7 );
textcolor ( BLACK );
for ( j = 0; j < col; j++ ) {
printf ( "%c", texto [ i ] [ j ] );
}
}
getche ( );
textcolor ( LIGHTBLUE );
gotoxy ( 13, 20 );
printf ( "Digite uma
palavra para procurar ==> " );
textcolor ( LIGHTRED );
gets ( pt );
lenv = strlen ( pt );
for ( i = 0; i < lin; i++ ) {
for ( j = 0; j < col; j++ ) {
k = 0;
while ( texto [ i ] [ j + k ] == pt [ k ] && pt [ k ] != '\0'
&& texto [ i ] [ j + k ] != '\0' )
k++;
if ( pt [ k ] == '\0' ) {
textbackground ( LIGHTGRAY );
++cont;
gotoxy ( 22, a + 22 );
a++;
textcolor ( LIGHTBLUE );
printf ( "linha " );
textcolor ( LIGHTRED );
printf ( "%d", i + 1 );
textcolor ( LIGHTBLUE );
printf ( " a partir da
coluna " );
textcolor ( LIGHTRED );
printf ( "%d", j + 1 );
memset ( &texto [ i ] [ j ], 0, lenv );
}
}
}
textcolor ( LIGHTBLUE );
gotoxy ( 13, 23 + cont );
textbackground ( WHITE );
printf ( "Encontrado
" );
textcolor ( LIGHTRED );
printf ( "%d", cont );
textcolor ( LIGHTBLUE );
printf ( " ocorrência (
s ) da palavra " );
textcolor ( LIGHTRED );
printf ( "%s", pt );
if ( cont == 0 ) {
Sleep ( 1000 );
textcolor ( LIGHTRED );
gotoxy ( 34, 32 );
printf ( "MUITO
OBRIGADO" );
getche ( );
exit ( 0 );
}
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 30, 32 );
printf ( "PRESSIONE
QUALQUER TECLA" );
getche ( );
Janela5 ( );
textcolor ( LIGHTRED );
gotoxy ( 13, 3 );
printf ( "PESQUISANDO E
APAGANDO OCORRÊNCIAS"
" DE STRING EM
MATRIZ" );
textcolor ( LIGHTBLUE );
gotoxy ( 13, 5 );
printf ( "Matriz
imprimida sem as " );
textcolor ( LIGHTRED );
printf ( "%d", cont );
textcolor ( LIGHTBLUE );
printf ( " ocorrências
da palavra" );
textcolor ( LIGHTRED );
printf ( " %s", pt );
textcolor ( BLACK );
for ( i = 0; i < lin; i++ ) {
gotoxy ( 13, i + 7 );
for ( j = 0; j < col; j++ ) {
printf ( "%c", texto [ i ] [ j ] );
}
}
Sleep ( 1000 );
textcolor ( LIGHTRED );
gotoxy ( 34, 32 );
printf ( "MUITO
OBRIGADO" );
getche ( );
return 0;
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.