Ir para o conteúdo
jp1610

ajuda a centrar um string em c

Mensagens Recomendadas

jp1610    0
jp1610

perciso de ajuda tenho ke faxer um programa que centre a string dada pelo utilizador so que n sei kual a funçao ou comando.

se puderem ajudar agradeciamt, obrg.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jp1610    0
jp1610

pois isso eu sei o ke e serve para contar o numero de caracteres ke uma string tem.

mas o meu  stror pedi para "Receba uma string através do teclado. Coloque essa string centrada no ecrã."

axo ke e nessecario uma funcao

ou entao utilizando x y

como no qbasic.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
pmg

> Receba uma string através do teclado.

O que é que o professor ensinou?

scanf() ?

fgets() ?

> Coloque essa string centrada no ecrã.

O que é que o professor ensinou?

printf() ?

fputs() ?

Edit:

Não te procupes, para já, em centrar a string. Faz um programa que "receba uma string através do teclado" e "coloque essa string no ecrã".

Depois mete-o aqui ... e nós damos-te pistas para centrares a string.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jp1610    0
jp1610

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

char palavra[30];

int main()
{


      printf("Digite a sua palavra\n");
      gets(palavra);
      printf("%s\n", palavra);

      system("PAUSE");
      return 0;
}

ppl obrg pela vossa ajuda aprendi gets e printf varias cenas apenas nessecito de puder centrar a string dada pelo utilizador.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
pmg

      gets(palavra);

NÃO, NÃO, NÃO!!!

Nunca uses gets() ... e se o professor disser que sim ... despede-o :)

Eu sei que gets() é muito mais prático que qualquer outra opção para receber uma string do teclado, mas os defeitos dessa função não compensam a facilidade de uso.

A função gets() é extremamente propícia a "buffer overflows": e não há maneira de a controlar.

NUNCA USES gets().

Como é que queres centrar a string?

Eu proponho que seja escrevendo um determinado número de espaços antes da palavra propriamente dita.

Só precisas de calcular esse número de espaços e escrevê-los.

/* ... */
/* gets(palavra); */
fgets(palavra, 30, stdin);

/* calcular e imprimir um determinado número de espaços */
/* Mete o teu código novo aqui */
/* O resto está ok */

printf("%s\n", palavra);
/* ... */

Ohhhhhhhhhhh ... o header <iostream.h> não faz parte de nenhuma biblioteca C que eu conheça.

Já o vi algumas vezes em C++, normalmente sem o .h (#include <iostrem>).

O teu programa não precisa de header nenhum além dos <stdio.h> e <stdlib.h>.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Njay    0
Njay

Centrar a palavra é apenas uma questão de contas. 1º tens que saber qual é a largura do espaço onde queres centrar a palavra. Depois precisas de saber qual é o tamanho daquilo que queres centrar. E depois tens que fazer contas para saberes onde deves começar a escrever a palavra para que ela fique centrada. Tenta lá reflectir um pouco sobre isso... se for preciso usa um pedaço de papel quadriculado para fazeres umas experiências.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nata79    0
nata79

criei esta função á uns tempos num trabalho k fiz pa universidade, é com ncurses, mas mm assim pode ser k de jeito...

void center(int linha, char *titulo){
    
int x, y, a;
getmaxyx(stdscr, y , a);                  
x = a - strlen(titulo);        
x /= 2;                 
mvaddstr(linha, x, titulo);
refresh();
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade