Estou aqui mais uam vez,
Então, estou umplementando o mesmo programinha que fiz em batch (hunter.bat), agora em C no NetBSD (é um passa tempo mesmo). Me deparei com uma situação onde precisei comparar a parte final de duas strings. Percebi que no C não temos a função endswith(3) por isso desenvolvi uma.
Essa função recebe duas strings e as compara. Caso sejam iguais ela retorna 1, caso contrário ela retorna 0.
Então, estou umplementando o mesmo programinha que fiz em batch (hunter.bat), agora em C no NetBSD (é um passa tempo mesmo). Me deparei com uma situação onde precisei comparar a parte final de duas strings. Percebi que no C não temos a função endswith(3) por isso desenvolvi uma.
Essa função recebe duas strings e as compara. Caso sejam iguais ela retorna 1, caso contrário ela retorna 0.
Você pode baixar o arquivo de cabeçalho (strext.h) no seguinte link:
http://www.4shared.com/file/v7P_VNr0/strext.html
Segue um exemplo de como usar este cabeçalho:
/* Estou incluindo o caminho completo para o cabeçalho stdio.h por que o blog não aceita
que eu coloque os simbolos de "maior que" e "menor que".
*/
#include "/usr/include/stdio.h"
#include "strext.h" //AQUI ESTOU CHAMANDO O CABEÇALHO
int main(int argc, char *argv[]){
char *nome = argv[1];
char *ext = "argv[2];
if(endswith(nome, ext) == 1){
printf("Sao iguais.\n");
} else {
printf("Sao diferentes.\n");
}
}
Observe a saída do programa acima, usando o cabeçalho, aqui no meu computador:
BSDevel# ./stringext Alan ana
Sao diferentes.
BSDevel# ./stringext Alan an
Sao iguais.
É isso aí pessoal. Talvez você encontre uma outra solução. Se isso acontecer, coloque ela aqui como comentário, vamos aumentar em conhecimento. Eu estou estudando C, estou em fase de aprendizado, então não tome essa solução como absoluta. Esta foi apenas a maneira que eu achei de solucionar o meu problema.
Forte abraço,
0 comentários:
Postar um comentário