Ir para o conteúdo
plm

Eliminar espaços a mais numa string

Mensagens Recomendadas

plm

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  :(

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Cr4zYPT

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
plm

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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

Partilhar esta mensagem


Ligação 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. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.