Ir ao conteúdo

Posts recomendados

Postado

Olá.

 

Faz algum tempo que não programo em linguagem C, e resolvi exercitar um pouco.

 

porém acho esqueci como se trabalha com strings.

 

Quero montar um programa bem simples. O usuário inseri uma frase de ate 200 caracteres, logo em seguida digita a quantidade de caracteres que deseja ter por linha. Não quero que o programa quebre no meio da frase.

 

Montei esse Script  porém está dando erro.

Desde já sou grato.

 

#include <stdio.h>
int main(void)
{
    
    char frase[200]; // Variavel do texto
    int tam,count,i; //variaveis para calculos

    
    
    printf("Iniciou o programa para separa uma frase em frases com valores predefinidos, sem cortar palavras\n\n");
    printf("Digite uma frase, ao final digite enter\n");
    gets(frase); // Pega texto do teclado ate digitar enter e joga na variavel frase
    
    fflush(stdin); // limpa memoria 
    
    printf("Qual o tamanho maximo que a frase pode ter ?\n");
    scanf("%d",&tam);// Pega variavel do tamanho
    
    count=tam; // contador inicia igual tam


    for( i=0;i<200;i++){ // Percorre o texto
        if (i>=count){ // Se o lugar onde o vetor esta for maior ou igual ao contador
            if(frase[i]!= ' '){} //onde da erro *** enquanto o indice onde for diverente de espaço não faz nada
            else{
            frase[i]='\n';      // Se passar do while é branco, logo pode ter quebra de linha.
            count+=tam;         // Contador assume o valor dele mais ele. Para proxima linha ter no min o tam dele
            }
        }
    }
    
    for(i=0;i<200;i++){ // percorre o vetor
        printf("%s",frase[i]); // Imprime os caracteres do verto 1 a 1
    }
    
    return 0;

}

 

  • Curtir 1
Postado

@Jessé P. de Melo    seu código está certo, você apenas colocou s no lugar de c nessa linha :

printf("%s",frase[i]); // Imprime os caracteres do vertor 1 a 1

por isso estava dando erro .     então seu código com algumas modificações ficou assim :

#include <stdio.h>
#include <string.h>
int main()
{

    char frase[200];               /*// Variavel do texto*/
    int tam,count,i,aux;           /*//variaveis para calculos*/



    printf("Iniciou o programa para separa uma frase em frases com valores predefinidos, sem cortar palavras\n\n");
    printf("Digite uma frase, ao final digite enter\n");
    fflush(stdin);                 /*// limpa memoria  precisa limpar o buffer do teclado antes de fazer a leitura */
    gets(frase);                   /*// Pega texto do teclado ate digitar enter e joga na variavel frase*/


    printf("Qual o tamanho maximo que a frase pode ter ?\n");
    scanf("%d",&tam);              /*// Pega variavel do tamanho*/

    count=tam;                     /* // contador inicia igual tam*/

    aux=-1;
    for( i=0;i<strlen(frase);i++){ /*// Percorre o texto*/
        if (i>=count){             /*// Se o lugar onde o vetor esta for maior ou igual ao contador*/
            aux++;                 /* quantidade de caracteres que passou do tam */
            if(frase[i]==' '){
                frase[i]='\n';      /*// Se passar do while é branco, logo pode ter quebra de linha.*/
                count+=tam+aux;     /*// Contador assume o valor dele mais ele. Para proxima linha ter no min o tam dele*/
                aux=-1;
            }
        }
    }

    for(i=0;i<strlen(frase);i++){   /*// percorre o vetor*/
        printf("%c",frase[i]);      /*// Imprime os caracteres do verto 1 a 1*/
    }
    printf("\n\n");
    return 0;

}

 

  • Curtir 1

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!