thinkabout Posted February 3, 2013 at 12:45 PM Report #494033 Posted February 3, 2013 at 12:45 PM (edited) Boas , estou com dificuldade em contar os espaços antes e no final da frase, a parte da separação já se encontra a funcionar. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> // strlen #define Dim 100 /* Desenvolva um programa que leia uma frase introduzida pelo utilizador e escreva cada uma das palavras que constituem a frase numa linha separada. Considere que as palavras estão separadas por um ou mais espaços em branco, podendo também existir espaços no início e fim da frase.Exemplo: Hoje e Domingo! O programa deverá escrever: Hoje e Domingo! */ void main() {char frase[Dim]; int tamanho,i,espacoantesbrancos=0;printf("Introduza uma frase com menos de %d caracteres \n",Dim); gets(frase); tamanho=strlen(frase); // Vamos ignorar o começo da frase for (i = 0; frase[i] != ' ' ; i++) { if (frase[i] == ' ') { espacoantesbrancos++; } }printf("existem %d espacos antes \n", espacoantesbrancos); // Impressão da frase for (i = espacoantesbrancos; i < tamanho; i++) { if (frase[i] != ' ') { printf("%c", frase[i]); } if (frase[i] == ' ') { printf("\n"); } } } -------- Já vi como faço o começo, mas continuo com o problema de achar os espaços no final da frase. O ideal penso que seria fazer isto com um for tanto podia andar com o ciclo para a frente como para trás, mas está-me a falhar as condições. // Vamos ignorar o começo da frase while (frase[i] == ' ') { espacoantesbrancos++; i++; } Edited February 3, 2013 at 01:01 PM by thinkabout
HappyHippyHippo Posted February 3, 2013 at 01:53 PM Report #494035 Posted February 3, 2013 at 01:53 PM vamos ver os algoritmos (contar espaços no início da string) - atribuir o valor de zero a uma variável determinando então o primeiro índice da string - enquanto o caracter do índice indicado for um espaço, incrementar a variável - o número de espaços iniciais é igual ao valor da variável no final do ciclo (contar espaços no fim da string) - atribuir o valor do tamanho da string menos 1 a uma variável determinado então o último índice da string - enquanto o caracter do índice indicado for um espaço, decrementar a variável - o número de espaços finais é igual ao tamanho da string menos o valor da variável menos um agora implementa em código ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
thinkabout Posted February 3, 2013 at 04:48 PM Author Report #494056 Posted February 3, 2013 at 04:48 PM vamos ver os algoritmos (contar espaços no início da string) - atribuir o valor de zero a uma variável determinando então o primeiro índice da string - enquanto o caracter do índice indicado for um espaço, incrementar a variável - o número de espaços iniciais é igual ao valor da variável no final do ciclo for (i = 0; frase[i] == ' '; i++) { espacoantesbrancos++; } printf("existem %d espacos antes \n", espacoantesbrancos); (contar espaços no fim da string) - atribuir o valor do tamanho da string menos 1 a uma variável determinado então o último índice da string - enquanto o caracter do índice indicado for um espaço, decrementar a variável - o número de espaços finais é igual ao tamanho da string menos o valor da variável menos um agora implementa em código ... for (i = ultimoindice; frase[i] == ' '; i--) { ultimoindice--; } espacofinais=(tamanho-1)-ultimoindice; printf("existem %d espacos no fim \n", espacofinais); Já está a bombar, depois foi só acertar a condição de paragem do último for for (i = espacoantesbrancos; i < tamanho-espacofinais; i++) Não estava a ver a questão do último índice quando estava a contar para trás e também não estava apanhar depois o último menos um. Maldito '/0' 😞 .
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now