Ir ao conteúdo

Posts recomendados

Postado

Faça uma nova função StrHigh(), que faz uma cópia em maiúscula de uma string recebida. Caso a string recebida como origem tenha já caracteres em maiúscula, estes deverão ser copiados para o destino tal e qual já se encontram na original. Escrever um programa exemplo que faça o chamamento desta função.

 

Alguém pode me ajudar?

#include <stdio.h>
#include <string.h>
#include<stdlib.h>
void StrHigh (char *destino,char *origem)
{
while (*origem)
{
*destino=*origem;
origem++;
destino++;
}
*destino='\0';
}
int main ()
{
char str1[100],str2[100],str3[100], tempo;
int tamanho, i;
printf ("Entre com uma string: ");
gets (str1);
StrHigh (str2,str1);
StrHigh (str3,"voce digitou a string ");
printf ("\n\n%s%s",str3,str2);
 tamanho=strlen(str1); /Tamanho da string/
    i=0;
    while(i <= tamanho -1)
    {
        if (str1[i] ==' '){ /evita o acrescimo em um caractere nulo/
            printf(" ");
        }
        else{
            tempo=str1[i];
            tempo -= 32;
            printf("%c", tempo);
        }
    i++;
    }
        system("pause");
return(0);
}

 

 

  • Obrigado 1
Postado

@Giovanna Moreira No código está comentando da forma errada e assim não vai compilar, corrija os comentários, p.ex

 

/Tamanho da string/

Para,
/* Tamanho da string */

Ou,
// Tamanho da string

 

Eu acho que você podia tirar esse loop e verificar se alguma letra é minúscula na própria função, p.ex,

 

 if(*origem >= 'a' && *origem <= 'z')
    *destino=*origem-32;
 else
    *destino=*origem;

 

Obs: Não é recomendável usar gets, é melhor fgets que limita o tamanho da string.

  • Obrigado 1
Postado

Se eu entendi corretamente o exercício, então pode ser feito assim também:

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

char *paraMaiuscula(char *string) {
  int tamanho = 0;

  for(int i = 0; string[i] != '\n' && string[i] != '\0'; i++) {
    tamanho += 1;
  }

  char *resultado = malloc(tamanho * sizeof(char));

  for(int i = 0; i < tamanho; i++) {
    resultado[i] = (char) toupper(string[i]);
  }

  return resultado;
}

int main(void) {
  char *palavra = "entrada";
  char *saida = paraMaiuscula(palavra);

  printf("%s \n", saida);
  return EXIT_SUCCESS;
}

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!