Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>



void main()
{
   //Declaração de Variaveis
    int i, TamStr;
     char Str[30];

    //Introdução de informação
    printf("introduza uma frase:");
     scanf("%s", Str);

     //Converte minusculas em maiusculas
      TamStr = strlen(Str);
       for(i=0; i<TamStr; i++)
       {
       Str[i] = toupper (Str[i]);
       }

       //Saida de Informação
        printf("%s",Str);
         getch();
}

Ola pessoal,olha eu preciso de Elaborar um programa que leia uma frase. Após copiar essa frase para uma nova variável, deve alterar o seu conteúdo de forma a inserir um espaço entre cada carácter.Como faço isto???

 


 

Postado

@PT_Richard_Assis sprintf() grava os dados numa string, veja a documentação.

Acredito que possa servir para o que você quer fazer: após copiar a frase, crie um loop, e dentro do mesmo use a sprintf() para gravar na string seus próprios caracteres, mas espaçados. Talvez você precise de uma variável auxiliar, pois estaria escrevendo por cima dos caracteres da string com espaços.

Aliás, você nem precisa chamar essa função, daria pra fazer isso com atribuições, mas você que decide :)

 

Note também que você precisa limitar a quantidade de caracteres com os quais o usuário pode entrar, prefira fgets() à scanf(), e também você deverá alocar quase o dobro de memória para a nova string, já que deverão ser inseridos espaços entre os caracteres.

Postado

@Lucca Rodrigues Veja la assim? 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>


void main()
{
   //Declaração de Variaveis
    int i;
     char str[30],strpad;

    //Introdução de informação
    printf("introduza uma frase:");
     scanf("%s", str);


       //Saida de Informação
        printf("%s",str,strpad);
         getch();

  system("PAUSE");
   return 0;
}

 

Postado

@PT_Richard_Assis     no primeiro você está convertendo os caracteres da string em maiúsculas , e no segundo não tem nada , nem mesmo a copia da string em  outra variável ,  que pode ser feita de vários modos , como usando a função 

strcpy(auxiliar, str);  // copia a string

e para incluir os espaços , usando um laço de repetição para percorrer todos os caracteres da string , começando do final para o começo e ir puxando os caracteres para as novas posições deles ,  e poderia ser assim  :

t = strlen(str) - 2;                        // tamanho da string e ajuste para o loop ir até quase ao início 
for (int j = t*2;  j > 0; j -= 2)           // começa do finaL para o inicio pulando de dois em dois
{
    if (str[contador] == ' ')
        contador--;
    str[j] = str[contador];                 // puxa o caractere dessa posição para a nova posição
    str[j - 1] = ' ';                       // insere espaços entre os caracteres
    contador--;                             // aponta para o caractere anterior da string
}
str[t*2] = '\0';                            // coloca o '\0' finalizando a string

 

Postado

Reservando espaço suficiente você pode inserir na própria string da frase.

 

Pegue o dobro do tamanho da frase para atribuir o caractere terminador (0) no novo final. E com duas variáveis inteiras (uma para o tamanho da frase e outra para o novo tamanho), coloque no loop que vai do fim para o inicio decrementando as variáveis e fazendo as atribuições.

 

#include <stdio.h>

int main(){
    char frase[50] = "INSERINDOESPACO";
    int n = 0;
    int i = 0;
    
    while(frase[n]){
        n += 1;
    }
    n -= 1;
    i = n * 2;
    frase[i + 1] = 0;
    
    while(i > 0){
        frase[i] = frase[n];
        frase[i - 1] = ' ';
        i -= 2;
        n -= 1;
    }    
    printf("%s\n", frase);
    return 0;
}

 

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