Ir ao conteúdo
  • Cadastre-se

C não consigo acessar os termos da string em c a partir do indice


Posts recomendados

#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

 

 

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!