Mostrando postagens com marcador C. Mostrar todas as postagens
Mostrando postagens com marcador C. Mostrar todas as postagens

quinta-feira, 13 de março de 2008

Pra quem prefere compilar na mão..

É possível, no ambiente Windows, compilar códigos C e C++ como em Linux, na linha de comando (coisa de macho). A solução é MinGW32 - Minimalist Gnu for Windows - que é a versão para windows do GNU Compiler Collection (GCC para os íntimos). Funciona igual em Linux, e serve como uma boa alternativa pro Dev C++.

Tutorial básico de instalação.

sábado, 1 de março de 2008

Things to avoid in C/C++

Achei uns artigos na net sobre certas funções e alguns hábitos de programação em C que na verdade são um problema para o programador. Na minha opinião, merecem pelo menos uma olhada:

Things to Avoid in C/C++, Part 1 - gets()

Things to Avoid in C/C++, Part 2 - fflush(stdin)
Things to Avoid in C/C++, Part 3 - feof()
Things to Avoid in C/C++, Part 4 - system("pause")
Things to Avoid in C/C++, Part 5 - scanf()
Things to Avoid in C/C++, Part 6 - scanf() / character
Things to Avoid in C/C++, Part 7 - scanf() / string
Things to Avoid in C/C++, Part 8 - scanf() / number
Things to Avoid in C/C++, Part 9 - scanf() / epílogo
Things to Avoid in C/C++, Part 10 - void main()

String Tokens

Tokens são uma ótima forma de se trabalhar com strings, formatadas ou não. A função strtok() é a solução em C para tokens. A sintaxe é a seguinte:
char * strtok(char * str1, const char * str2)
Ou seja, retorna um ponteiro para char, que pode ser interpretada também como uma string; e os seus parâmetros são dois ponteiros para char. Ela é usada da seguinte forma:

1. A primeira chamada para strtok quebra o primeiro parâmetro (str1) em tokens, delimitados pelo segundo parâmetro (str2).
2. Cada chamada subseqüente retorna um token, mas para isso o primeiro parâmetro tem que ser NULL.

Exemplo 1 - Neste exemplo, a saída será
seu
email
seu
dominio
com
br

Exemplo 2 - Este exemplo é igual ao de cima, só que o email é lido do usuário.

Exemplo 3 - Este é o segundo exemplo modificado. Esse código contém um erro relativamente comum quando se trabalha com strings. O gets() não aceita ponteiros para char, como foi declarado na linha 5. O jeito certo é declarar um array, como no segundo exemplo.

Em C/C++, é basicamente isso. Só não é mais simples que Java :D