Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Ricardo Kaê

Como imprimir um intervalo de um vetor de caracteres em C?

Recommended Posts

Boa noite galera ! Então, estou aprendendo a programar em C agora e como prática, estou tentando fazer um triângulo de asteriscos com um número de linhas passado.

/*

 

Nº Linhas = 5

*

**

***

****

*****

 

*/

Exatamente desse jeito. Então, eu criei um vetor de caracteres de comprimento igual ao número de linhas - 1 (por causa do caracter de Escape) e estou tentando usar um for para imprimir a cada iteração, parte desse vetor. Em python, ficaria algo similar a isso (eu não sei se alguém programa em python, mas vai o código assim mesmo).

Exemplo 1 em Python:

vetorBase = "*****" // 5 caracteres de asteriscos

for modificaVetor in range(1,6):

     print vetorBase[:modificaVetor]

 

A minha dúvida é: Como eu imprimo um intervalo de um vetor em C?

O código que eu fiz em C está assim...

Exemplo 1 em C:

// Triângulo de asteriscos

#include <stdio.h>

int main(void)

{

char vetorBase[6] = "*****";

int modificaVetor;

for (modificaVetor=1;modificaVetor<5;modificaVetor++)

{

      printf("%.%ds",modificaVetor,vetorBase); // Eu estava tentando modificar a precisão do vetorBase, com o valor de modificaVetor. Não deu certo, rs

}

return 0;

}

Eu pensei numa solução 2 também, que seria ao invés de ficar tentando imprimir direto, guardasse numa variável, parte desse vetor. Desse jeito...

Exemplo 2 em Python:

vetorBase = "*****"

for modificaVetor in range(1,6):

       vetorResp = vetorBase[:modificaVetor]

       print vetorResp

 

Em python é até burrice fazer isso, mas acho que é possível aproveitar o algoritmo em C, já que eu não consigo usar o printf direito em C.

Enfim, essa é a duvida. Agradeço aos que puderem ajudar !

 

 

 

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Ricardo Kaê     olha aqui um jeito fácil de fazer esse triangulo :

#include <stdio.h>
#include <conio.h>
#include <windows.h>
void gotoxy(int x,int y){
    COORD c;
    c.X=x;
    c.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
int i,j,c,l,k=4,w;
int main(){
    printf("Digite A Quantidade De Linhas ");
    scanf("%d",&w);
    gotoxy(36,2);printf("Triangulo");
    c=40;
    l=5;
    k=1;
    for(i=0;i<w;i++){
        gotoxy(c,l);
        for(j=0;j<k;j++){
            printf("* ");
        }
        /*c--;*/
        l++;
        k++;
    }
    printf("\n\n\n");
    getch();
    return 0;
}

já para você imprimir um intervalo de um vetor de caracteres você usa um laço de repetição assim :

#include <stdio.h>
#include <conio.h>
int a,b,i,w,g;
char vetor[10]={'a','b','c','d','e','f','g','h','i','j'};
int main(){
    do{
        w=1;
        do{
            g=1;
            printf("Digite O Comeco Do Trecho De 0 Ate 8 ");
            scanf("%d",&a);
            if(a<0||a>8){g=2;printf("Valor Fora De Faixa, Digite Outro Tecle \n");getch();}
            g--;
        }while(g!=0);
        do{
            g=1;
            printf("Digite O Final Do Trecho De 1 Ate 9 ");
            scanf("%d",&b);
            if(b<1||b>9){g=2;printf("Valor Fora De Faixa, Digite Outro Tecle \n");getch();}
            g--;
        }while(g!=0);
        if(a>b){w=2;printf("Valor De A Maior Que B, Digite Outros Tecle \n");getch();}
        w--;
    }while(w!=0);
    for(i=a;i<=b;i++){
        printf("%c ",vetor[i]);
    }
    getch();
    return 0;
}

 

Editado por devair1010

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×