Google Code Jam 2010 - Africa Classification Round
Publicado por Enzo de Brito Ferber (última atualização em 19/12/2011)
[ Hits: 3.446 ]
Homepage: http://www.maximasonorizacao.com.br
Problema B.
http://code.google.com/codejam/contest/dashboard?c=351101#s=p1
Dado um arquivo de entrada com n linhas, ler cada linha do arquivo e imprimir as PALAVRAS em ordem inversa.
Por exemplo:
VIVA O LINUX É MUITO BOM
Imprime:
Case #1: BOM MUITO É LINUX O VIVA
// reverse.c // Enzo Ferber - dez 2011 #include <stdio.h> #include <stdlib.h> #include <string.h> #define LINES 101 #define LETTERS 1001 // reverse word from A to B void rword ( char *str, int a, int b ) { char *aux = (char *) malloc ( (b - a + 1) * sizeof ( char )); register int i; for ( i = a; i < b; i++ ) *(aux++) = str[i]; for ( i = a; i < b; i++ ) str[i] = *(--aux); // free memory free ( aux ); } // reverse the whole string void rstr ( char *str ) { char *backup = (char *) malloc ( strlen(str) * sizeof(char)); register int i, j; for ( i = 0, j = strlen(str) - 1; i < strlen(str); i++, j-- ) backup[i] = str[j]; strncpy ( str, backup, strlen(str) ); free ( backup ); } // main function ... int main ( int argc, char *argv[] ) { register int i = 0, j = 0, a, lines; char line[ LINES ][ LETTERS ], c; FILE *input; // arguments if ( argc < 2 ) { printf ( "Usage: %s <input_file>\n", argv[0] ); exit ( -1 ); } // try to open input file if( !(input = fopen(argv[1], "r"))) { printf ( "# Could not open file %s\n", argv[1] ); exit ( -1 ); } // read file while ( (c = fgetc(input)) && !feof(input) ) { if ( c != '\n' ) line[i][j++] = c; else { line[i][j] = 0x0; i++; j = 0; } } // store lines number lines = i; // reverse whole string, then words for ( i = 1; i < lines; i++) { rstr ( line[i] ); for ( j = 0; j < strlen(line[i]); j++ ) { for ( a = j; a <= strlen(line[i]); a++ ) { if ( line[i][a] == ' ' || line[i][a] == '{FONTE}' ) { rword(line[i], j, a); j = a; break; } } } } for ( i = 1; i < lines; i++ ) printf ( "Case #%d: %s\n", i, line[i] ); return 0; }
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (1)
VMs e Interfaces de Rede desapareceram (13)
Como abrir o pycharm no linux [RESOLVIDO] (4)