milah.luks Postado Março 7, 2010 Denunciar Share Postado Março 7, 2010 (editado) NÃO CONSEGUI FAZER NADA!Implemente funções que façam o mesmo que as funções do C:a. strlen( ) - retorna o tamanho da stringb. strcmp( ) - diz se as duas strings são iguais ou nãoc. strcnpy( ) - copia os n primeiros caracteres para a string destinod. strcat( ) - concatena duas stringse. strfind( ) - procura todas as ocorrência de uma string dentro de outra.Deve informar todas as posições iniciais onde ela encontrou.2. Função que recebe uma string e imprime o valor ASCII de cada elemento.3. Escreva uma função que converte todas as letras de uma cadeia paramaiúsculas.4. O protótipo pode ser void converte(char *s); Um código extremamente simplessubstitui cada letra pela letra seguinte, circularmente (Z é codificado como A). Porexemplo, “Estruturas de Dados” se transformaria em “Ftusvuvsbt ef Ebept”. Escrevafunções para codificar e para decodificar cadeias segundo este código.5. Escreva um programa que lê uma frase (várias palavras) do teclado, e escreve aspalavras uma por linha. Por exemplo, se a entrada fosseEstruturas de DadosSaída seria:EstruturasdeDados Editado Março 7, 2010 por Jonathan Queiroz Remover caixa alta do título (Jonathan) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Março 7, 2010 Denunciar Share Postado Março 7, 2010 Poste aí o que você já fez. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 milah.luks Postado Março 7, 2010 Autor Denunciar Share Postado Março 7, 2010 Não consegui fazer NADA! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Março 7, 2010 Denunciar Share Postado Março 7, 2010 Poste aí as suas tentativas de fazer.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 milah.luks Postado Março 7, 2010 Autor Denunciar Share Postado Março 7, 2010 Não sei nem por onde começar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Março 7, 2010 Denunciar Share Postado Março 7, 2010 Que tal por aqui? http://www.inf.ufpr.br/nicolui/grad/ci067/Docs/NotasAula/http://www.ccuec.unicamp.br/treinamento_in...lingc/index.htmAbraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 milah.luks Postado Março 8, 2010 Autor Denunciar Share Postado Março 8, 2010 Utilizando ponteiros faça:1. Implemente funções que façam o mesmo que as funções do C:a. strlen( ) - retorna o tamanho da string.b. strcmp( ) - diz se as duas strings são iguais ou nãoc. strcpy( ) - copia os n primeiros caracteres para a string destinod. strcat( ) - concatena duas stringse. strfind( ) - procura todas as ocorrência de uma string dentro de outra.Deve informar todas as posições iniciais onde ela encontrou.LETRA C.#include <cstdlib>#include <iostream>#include <stdio.h>using namespace std;void strcnpy(char *vet1, char *vet2, int *n){ int i; for( i=0; i<*n; i++) vet2=vet1; vet2='';}int main (){ char *vet1, *vet2; int *n; cout<<"Digite o primeiro nome: \n"; gets(vet1); cout<<"Digite o segundo nome: \n"; gets(vet2); cout<<"\n"<<strcpy(vet1, vet2); system("PAUSE"); return EXIT_SUCCESS;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gui Meira Postado Março 8, 2010 Denunciar Share Postado Março 8, 2010 (editado) Olá amigo!Pra mim, a chave principal para entender e implementar essas funções de tratamento de strings é lembrar que uma string nada mais é do que um vetor de caracteres e, o mais importante, terminado com o caractere '\ 0'.Tendo isso em mente, fica fácil pelo menos começar a pensar em algo.Vou começar pela mais fácil e te dar as dicas para as outras.int guimeira_strlen(char * frase) { int i = 0; while(frase[i] != '\ 0') { i++; } return i; }Observe o que eu fiz nessa função: comecei a olhar primeiro caractere da string, se não for o \ 0, significa que a string não acabou, então somo 1 no meu contador. Depois olho o próximo, e o próximo, até chegar ao final.Por fim, retorno esse valor.As outras ficam por sua conta, vou só dar umas idéias:strcmp(): Você vai receber duas strings e vai olhar as duas caracter por caracter. Se você encontrar um caractere diferente, retorna dizendo que são diferentes. Se chegar no \ 0 das duas, então são iguais.strncpy(): Também vai receber duas strings. Faz um loop de 1 até o número de caracteres a serem copiados e vai copiando de uma string pra outra.strcat(): Vai olhando caracter por caracter da primeira string até encontrar o \ 0. Chegando no \ 0, começa a copiar a segunda string a partir dai.strfind(): Nessa aqui você pode usar um loop dentro de outro. No loop de fora você vai varrendo a primeira string em busca de uma letra que seja igual à primeira letra da segunda string. Quando encontrar, você entra em outro loop para comparar as próximas letras e ver se é de fato uma ocorrência da segunda string.2: Você pode usar um loop para ver cada caractere da string e simplesmente usar printf("%d",c); onde c é o caractere. Como você ta usando %d, que é para inteiros, o C já faz a conversão para o valor ASCII pra você.3: Baseado na tabela ASCII você pode subtrair um determinado valor de cada caractere para torná-lo maiúsculo. Também é válido usar uns ifs e tal pra ver se o caracter é maiúsculo ou minúsculo e tal... mas tudo baseado na posição deles na tabela ASCII.4: Como diz o enunciado da questão, é extremamente simples. É só olhar cada caractere da string e verificar se ele é diferente do Z. Se for diferente, soma 1, se for o próprio Z, faz ele passar a ser o A.5: Faz um loop pra ler a string e ir imprimindo todos os caracteres, exceto o espaço. Quando encontrar um espaço, imprime o \n.Perceba que tratamento de strings está ligado muito intimamente com loops de repetição. Em quase todas as situações você terá que analisar caractere por caractere e fazer alguma coisa com eles.Tente implementar alguma coisa e qualquer dúvida, estamos ai!Boa sorte!Espero ter ajudado! Editado Março 8, 2010 por Gui Meira Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
milah.luks
NÃO CONSEGUI FAZER NADA!
Implemente funções que façam o mesmo que as funções do C:
a. strlen( ) - retorna o tamanho da string
b. strcmp( ) - diz se as duas strings são iguais ou não
c. strcnpy( ) - copia os n primeiros caracteres para a string destino
d. strcat( ) - concatena duas strings
e. strfind( ) - procura todas as ocorrência de uma string dentro de outra.
Deve informar todas as posições iniciais onde ela encontrou.
2. Função que recebe uma string e imprime o valor ASCII de cada elemento.
3. Escreva uma função que converte todas as letras de uma cadeia para
maiúsculas.
4. O protótipo pode ser void converte(char *s); Um código extremamente simples
substitui cada letra pela letra seguinte, circularmente (Z é codificado como A). Por
exemplo, “Estruturas de Dados” se transformaria em “Ftusvuvsbt ef Ebept”. Escreva
funções para codificar e para decodificar cadeias segundo este código.
5. Escreva um programa que lê uma frase (várias palavras) do teclado, e escreve as
palavras uma por linha. Por exemplo, se a entrada fosse
Estruturas de Dados
Saída seria:
Estruturas
de
Dados
Editado por Jonathan QueirozRemover caixa alta do título (Jonathan)
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.