• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jp1610

ajuda a centrar um string em c

9 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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();
}

0

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