Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lgono

Achar/copiar String

Recommended Posts

 

#include <string.h>
int main(void) {
  const char * str1 = "<a target=\"_blank\" href=\"http://www.google.com\" title=\"Google\">";
  char * inicio = strstr(str1,"href=\"");
  char * final = strstr(inicio, "\" title=");
  unsigned int tam = final - inicio;
  char URL[tam];
  strncpy(URL, inicio, tam);
  URL[tam-1] = '\0';
  return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <string.h>
int main(void) {
  const char * str1 = "<a target=\"_blank\" href=\"http://www.google.com\" title=\"Google\">";
  char * inicio = strstr(str1,"href=\"");
  char * final = strstr(inicio, "\" title=");
  unsigned int tam = final - inicio;
  char URL[tam];
  strncpy(URL, inicio, tam);
  URL[tam-1] = '\0';
  return 0;
}

Olá, obrigado pela ajuda. Não ta pegando o link certinho, tentei arrumar aqui. porém, só consigo aumentando e diminuindo o tam.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim... Esqueci que o strstr procura a posição inicial da string...Vc tem que somar o comprimento das substrings passadas ao retorno do strstr.
E ainda é necessário que seja mantida essa ordem nos links, senão não dá certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim... Esqueci que o strstr procura a posição inicial da string...você tem que somar o comprimento das substrings passadas ao retorno do strstr.

E ainda é necessário que seja mantida essa ordem nos links, senão não dá certo.

Tipo, eu to fazendo uma espécie de "mini google", no qual o usuário vai digitar a url e vou converter a página html da url em um arquivo texto. Eu peguei a primeira tag que contém <a> e nessa tag, como coloquei no exemplo, preciso pegar o link. É mais ou menos do jeito que você fez?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei. Você também pode fazer isso de outra forma:

#include <stdio.h>
int main(void) {
	const char * link = "<a href=\"http://www.google.com\" target=\"blank\">";
	char url[255] = "";
	sscanf(link, "<a href=\"%255s\" %*s>", url);
	printf("%s", url);
	return 0;
}

Obs.: sobra uma aspas duplas na string.

 

Tem o strtok tb (http://en.cppreference.com/w/c/string/byte/strtok), mas é mais chato de lidar.

 

Se vc estiver num ambiente POSIX e não tem restrições quanto à não utilização de funções do padrão ISO, pode usar o header regex.h e uma expressão regular.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.