Pode escrever '\0' nessa posição
Pode escrever '\0' nessa posição
e ao fazer print não se vê o resto que está para a frente
Eu percorreria o array e ia passando os valores para outro, a cada passagem do ciclo verificava se essa letra já estava na palavra, se já estivesse, passava à próxima
cumpzz
Mas o objectivo nao é esse mesmo? mostrar so ate ao ponto de repetição?
#include <stdio.h>
#include <string.h>
int main()
{
char texto[50], *aux, *aux2;
int i,c;
aux=texto;
aux2=texto;
scanf(" %s",&texto);
while(*aux)
{
c=0;
while(*aux2)
{
if(*aux==*aux2)
{
c++;
if(c>1)
{
*aux2='\0';
}
}
aux2++;
}
aux++;
aux2=aux;
}
printf("\n %s \n", texto);
return 0;
}
Isso está a funcionar??
Código:scanf(" %s",[COLOR=red]&[/COLOR]texto);
#include <stdio.h>
#include <string.h>
int main()
{
char texto[50], *aux, *aux2, temp[50];
int i,c;
aux=texto;
aux2=texto;
scanf(" %s",texto);
while(*aux)
{
c=0;
while(*aux2)
{
if(*aux==*aux2)
{
c++;
if(c>1)
{
*aux2='0';
}
}
aux2++;
}
aux++;
aux2=aux;
}
int t=0;
for(i=0;i<strlen(texto);i++)
{
if(texto[i]!='0')
{
temp[t]=texto[i];
t++;
}
}
temp[t]='\0';
strcpy(texto,temp);
printf("\n %s \n", texto);
return 0;
}
Codigo alterado e melhorado (agora funciona a 100%! antes não funcionava para todas as palavras):
Sem testar, só lendo parece que está. Antes não te funcionava pela razão que disse aqui, assim parece bem, só te faltam uns comments no código
cumpzz
procurar para cada letras a ocorrencias dela a seguir é bue pouco eficaz.. implica montes varrimentos do array...
qnd se pode fazer com um so varrimento como eu disse