#include<stdio.h>
#define TAMMAX 50
void conta_unicos(int str[],int numstr,int res[])
{
int a, b, flag;
for(a=0;a<numstr;a++)
for(b=0;b<numstr;b++)
{
flag=0;
if(str[a]==str[b] && a!=b) //a!=b para não comparar com ele mesmo
flag=1;
printf("%d-", flag);
}
//printf posto para testar o erro
printf("\n String completa: %s\nNumero de termos: %d\n\nSegundo termo: %dTerceiro termo: %d", str, numstr, str[1], str[2]);
}
int main ()
{
int str[TAMMAX], numstr, res[TAMMAX];
printf("Digite a string desejada\n");
scanf("%s", str);
setbuf(stdin,NULL);
printf("Quantos termpo possui sua string?\n");
scanf("%d", &numstr);
//printf posto para testar o erro
printf("\n\n\n String completa: %s\nNumero de termos: %d\n\nSegundo termo: %dTerceiro termo: %d\n\n\n\n", str, numstr, str[1], str[2]);
conta_unicos(str, numstr, res);
}
estava fazendo um programa que imprime os termos únicos de uma string na tela,
e percebi que dentro da função void conta_unicos nunca caia no if(str[a]==str)
mesmo colocando if(stra[1]==str[2]) e entrando com strings "1111" ou semelhantes.
fazendo testes, descobri que imprimindo a string completa aparecia normal, mas ao tentar imprimir termo por termo
aparecia números aleatórios
por exemplo:
dados entrados na string: 111111
printf("%d %d", str[1], str[2]);
na tela: "125685548 1256327"
prinf("%s", str);
na tela: 111111
com a função gets acontece o mesmo, a unica forma que funcionou foi atribuindo direto na variavel "int str[TAMMAX] = {1,1,1,1,1,1,};
*Sou inciante em c, então o problema pode ser bem besta kk