Ir ao conteúdo

Ajuda com programa Camelcase


jgmoreira

Posts recomendados

Postado

ME AJUDEM!!!!!!!!........TO TENTANDO ALGUMAS POR aqui também:o

Camel case é a denominação em inglês para a prática de escrever, a partir de palavras compostas ou frases, expressões constituídas pelo agrupamento dessas palavras com a letra inicial maíuscula e as demais minúsculas, unidas sem espaços. Por exemplo, “NotaDaProva” seria o correspondente em camel case à expressão “nota da prova”. Este é um padrão muito utilizado para a criação de nomes de entidades em diversas linguagens de programação, como Java, Ruby e Python. Escreva uma função em C que recebe uma cadeia de caracteres e a transforma em uma cadeia no padrão camel case, ou seja, remove os espaços em branco e converte para maiúsculas as letras iniciais de cada palavra. Por simplificação, considere que a cadeia de entrada contém apenas letras minúsculas (entre ‘a’ e ‘z’ e espaços em branco. Por exemplo, se a cadeia “media da turma” for passada para a função, será transformada na cadeia “MediaDaTurma”. O protótipo da função é:

void CamelCase (char *s);

Obs.: uma outra prática é manter a primeira letra minúscula. Por exemplo: “media da turma” será transformada na cadeia “mediaDaTurma”. Escolha qual a forma mais apropriada.

char s[20];

strcpy(s,”media da turma”);

CamelCase(s);

Postado

pow, queria uma luz sobre o programa!!!

isso é um trabalho que tenho que fazer!!

Qual a sua dúvida cara?

Ajuda a montar o programa, por favor cara!

Postado

Claro, vamos lá monta-lo:


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

//prototipo da sua funçao
void CamelCase (char *s);

int main()
{
//o programa rola aqui dentro
}

void CamelCase (char *s)
{
//aqui voce faz a funçao principal do seu programa
}

Se tiver mais alguma dúvida, só perguntar :)

Boa sorte.

Postado

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

char* camelcase(char *s);

char* camelcase(char *s)

{

int cont,cont2=0,tam;

char *temp;

tam=strlen(s);

for (cont=0; s[cont]==' '; cont++)

tam=tam;

for (cont=tam-1; s[cont]==' '; cont --)

tam=tam-1;

temp=(char *) malloc(tam*sizeof(char));

for (cont=0; s[cont]==' '; cont++);

for ( ;cont2<tam; cont++)

{

temp[cont2]=s[cont];

cont2++;

}

temp[cont2]='\0';

return temp;

}

int main(void)

{

char palavra[101],*result;

printf("Entre Com A Palavra: ");

scanf("%100[^\n]",palavra);

system("cls");

result=camelcase(palavra);

printf("Palavra Compactada:%s\n",result);

system("pause");

return 0;

}

Po comecei a tentar fazer, mas to quebrando a cabeça aqui...

Postado

Onde está a função toupper() que serve para transformar um caractere em maiusculo?.

com certeza o exercício tava esperando o uso dessa função ;/

Declare result como um vetor de caracteres e use strcpy para copiar a string para ele

strcpy(result,camelcase(palavra));

E não sei porq você usou um monte de laço for na sua função.

Eu fiz aqui e só precisei de 2 laços 'for' e um 'if' :)

Postado

Enquanto ouvia o album Mirage, da banda Camel, pensei por alto...

Cria uma função que conta os espaços em branco...

"Oi tudo bem", retornaria 2.

Caso a alocaçao de memoria seja importante pra sua questao :

Dentro da função CamelToe, digo, CamelCase, cria outra string.

Essa string vai ter o tamanho X -n, onde X é o tamanho da original (strlenght(orig)) e n é o tanto de espaços.

Então, se a original é "Neil Peart", e tem 11 caracteres (com '\0'), a cópia tem 10.

Essa nova string vai ser uma cópia da original, mas com algumas modifiçãoes.

Primeiro, a primeira letra que voce vai copiar na cópia, vai salvar ela lá como maiúscula.

copia[0]=toupper(orig[0]);

Depois, quando tiver percorrendo a original pra salvar ela na copia e achar uma espaço tu não copia esse espaço, simplesmente copie o próximo char em maiúsculo:

if(orig==' ')

{

copia[j]==toupper(orig[i+1]);

i++;

}

Cuidado quando for percorrer nos laços for, os índices que vai usar na copia e orig nao sao os mesmos.

Tenta ae

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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