Pular para o conteúdo

strtok [RESOLVIDO]

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. strtok [RESOLVIDO]

Enviado em 14/09/2009 - 09:22h

Pessoal, não consigo compilar o programinha mostrado a seguir:

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char s1[40]="Exemplo de substring.";
char s3[40];
printf("\nString inicial: %s",s1);
s3=strtok(s1,argv[1]);
printf("\nCopia: %s\n",s3);
return 0;
}

Obtenho o erro incompatible types in assignment referente ao comando s3=strtok(s1,argv[1]);
Declarei s3 como string (array de caracteres) e acho que a função strtok retorna uma string, não?
Alguém pode me explicar o que está acontecendo?
Grato.

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: strtok [RESOLVIDO]

Melhor resposta

Enviado em 14/09/2009 - 11:43h

Essa função strtok() retorna um ponteiro para o primeiro argumento, ou nulo. O ponteiro aponta para o primeiro argumento, ou melhor, o primeiro argumento que você passou para a função será modificado, então você nem precisaria fazer "s3=strtok(s1,argv[1]);" porque s1 já foi modificada, veja:
-Se argv[1] = "sub";
--usando strtok(s1, argv[1]);
--s1 agora é "Exemplo de ";
Se você ainda quiser usar s3, faça:
strcpy(s3, strtok(s1, argv[1]));

valeu!

3. strtok

Enviado em 14/09/2009 - 12:19h

É isso mesmo!
Tanto o strtok como o strstr a gente usa com o strcpy, não?
Não entendi muito bem, porque ainda preciso estudar os ponteiros, mas sua explicação foi fantástica.
Muito obrigado.

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder