lgono 0 Denunciar post Postado Outubro 23, 2015 Olá, alguém poderia me ajudar em como copiar uma determinada string dentro de uma string? por exemplo, essa string: <atarget="_blank" href="http://www.google.com" title="Google"> Eu quero pegar somente depois do href=, que no caso seria "http://www.google.com" e salvar em uma variável. Não consigo, estou meio que desesperado. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 23, 2015 #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
lgono 0 Denunciar post Postado Outubro 23, 2015 #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
_Isis_ 202 Denunciar post Postado Outubro 23, 2015 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
lgono 0 Denunciar post Postado Outubro 23, 2015 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
_Isis_ 202 Denunciar post Postado Outubro 23, 2015 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