Jump to content

Eliminar espaços a mais numa string


plm
 Share

Recommended Posts

Boa tarde,

Será que alguém me consegue ajudar com a seguintes questões:

1.Escrever uma funçao que elimine espaços a mais existentes numa string

2. Escrever uma função que conte o número de palavras existentes numa string

3. Escrever uma função que transforme todas as letras iniciais de um nome em maiúsculas.

Já tentei de tudo e não consigo resolver isto  😞

Link to comment
Share on other sites

Ninguem aqui vai fazer o teu trabalho por ti.

Posso dar sugestões.

1. Fazes ciclo for e vais copiando a str inicial para uma outra e se detectares mais que espaço seguido ignoras e não copias.

2. Para contar numero de palavras e contar o nº de espaços na string (nao repetidos) -1. Porque a primeira palavra nao esta delimitada por espaço.

3.Se analizares a tabela ASCII verificas que as minusculas e maisculas relacionam-se por 32.

(int)a=(int)A + 32; //exemplo nao funciona em C++

Se ja fizes-te alguma coisa posta aqui para ver erros

Link to comment
Share on other sites

Em primeiro lugar eu pedi ajuda e não que alguém fizesse o meu trabalho!!

Obrigado pela sugestão é disso mesmo que preciso para conseguir resolver os exercícios.

sou iniciante em C++ e é possível que aquilo que fiz tenha alguns disparates mas preciso tentar para chegar lá...

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

int elim_espacos(char s[])
{
int i;
char str1[50],str2[50];
for(i=-1;;i++);

}

int IniciasMaisc(char s[])
{
int i=-1;
while(s[++i]!=0)//não sei qual a condição que vai permitir colocar as inicias em maiusculas
	s[i]=toupper(s[i]);
return i;
}

int ContaPalavras(char Frase[])
{
int i=-1;
while(Frase[++i]!=0);//não sei qual a condição que vai permitir contar as frases, so sei contar letras
return i;
}


int main()
{
char s[50];
printf("Qual seu nome completo? ");
gets(s);
printf("O seu nome << %s >> tem %d palavras\n",elim_espacos(s),IniciasMaisc(s),ContaPalavras(s));


system("Pause");
}
Link to comment
Share on other sites

não parece  😞

sempre ajuda no que toca a substrings ...

1.Escrever uma funçao que elimine espaços a mais existentes numa string

- criar uma string auxiliar

- crias um ciclo da primeira letra até à penúltima

    - se a letra for espaço e a seguinte também

        - salta a letra

    - caso contrário

        - adiciona à string auxiliar

- retorna a string auxiliar

2. Escrever uma função que conte o número de palavras existentes numa string

- crias uma variável contador com o valor 0

- crias uma variável auxiliar com o valor de 0

- enquanto a variável auxiliar for menor que o tamanho da string

    - procura na string pela primeira ocorrência de uma caracter espaço após a variável auxiliar

    - se o caracter foi encontrado

        - se o valor encontrado for maior que a variável auxiliar mais 1 // descartar espaços adjacentes

            - incrementa o contador de palavras

        - a variável auxiliar passa a ter o valor do caracter encontrado

    - caso contrário

        - se a variável auxiliar não for do tamanho da string menos 1 // descartar espaços no fim da string

            - incrementa o contador

- retorna o contador

3. Escrever uma função que transforme todas as letras iniciais de um nome em maiúsculas.

aplica um algoritmo semelhante ao anterior (procura de palavra) e ve o post do Cr4zYPT

3.Se analizares a tabela ASCII verificas que as minusculas e maisculas relacionam-se por 32.

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.