Ir ao conteúdo
  • Cadastre-se
wesleyWWW

RESOLVIDO C, ajuda, ponteiros ?

Recommended Posts

Estou começando a estudar ponteiros em C, e queria fazer 2 exercício, que também irão me ajudar no estudo...

Mas não sei muito bem como fazer, qualquer dica ou ajuda é bem-vinda 

Aqui estão eles:


2nhgjsm.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

No primeira, passe o ponteiro como argumento da função. Aí vá incrementando em um loop enquanto for diferente de nulo. O retorno da função será o endereço incrementando menos o original.

No segundo, é somar os caracteres da string. Por exemplo, a codificação considerando apenas maiúsculas

while(*nova++ = *original++){          *(nova - 1) += *(nova - 1) == 90 ? 66 - 90 : 2;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A forma mais simples de resolver é implementar uma função void com dois parâmetros, aí os argumentos passados serão os dois arrays já declarados na função principal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa fazer uma funcão que receba um ponteiro pra char e retorne um ponteiro pra char, dessa forma você vai conseguir receber um array de char e retornar outro array de char. Como você não quer alterar o valor da sua primeira variável você vai precisa criar outra e alocar memória pra esse novo array, do mesmo tamanho da sua string original. Então você copia uma string na outra e manipula essa nova string ai é só retorna esse novo array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu pela ajuda gente... Sorry não responder antes, andei fazendo outras coisas e só fui fazer esses 2 exercício agora...

Então, consegui fazer o 1, e o 2 falta só uma coisinha... 

Aqui está o meu código atual do 2:

#include <stdio.h>#include <string.h>int main() {char str1[50], str2[50], str3[50];char *ps, *ps2;int i;printf("Digite uma palavra:\n");scanf("%s", str1);printf("Palavra que vc digitou:\n%s\n", str1);ps = str2;ps2 = str3;for(i=0; i<(strlen(str1)); i++){	*ps = str1[i] + 2;	 ps++;}for(i=0; i<(strlen(str1)); i++){	*ps2 = str2[i] - 2;	 ps2++;}*ps = '\0';*ps2 = '\0';printf("str2 = %s\n", str2);printf("str3 = %s\n", str3);return 0;}



Então, o único problema é, uma palavra com Y ou Z não tem 2 letras a frente, por isso aparece uns símbolos, pra Y tinha q substituir por A e o Z por B, como posso fazer isso ?
 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×