Ir ao conteúdo
  • Cadastre-se

Dúvida em Strings (c)


Posts recomendados

Galera, estou com 2 exercícios que estou com muita dúvida em c, já tentei de várias maneiras, mas não consegui realizar o programa pedido. Alguém pode me ajudar com a lógica??

 
1.Faça um procedimento que recebe uma frase (string) qualquer e dois parâmetros caracter. O procedimento deverá a cada vez que encontrar o 1º caracter na string substituí-lo pelo 2º. Implemente também o main para testar.
void troca(char *txt, char de, char para);
 
2. Considerando que você está utilizando uma matriz para representar as poltronas em sistema de vendas de passagens aéreas, como sendo 30 fileiras (linhas) e 6 colunas (dois conjuntos de 3 poltronas por fileira). Considere que uma poltrona pode estar: ‘D’ = disponível, ‘H’=ocupada por homem ou ‘M’=ocupada por mulher. Escreva um programa em C com tenha os seguintes procedimentos / funções:
a) Coloca todas as poltronas do avião como disponíveis.
Protótipo da função= void inicializaAviao(char * mat, int tamL, int tamC).
 
b ) Inseri passageiro na primeira poltrona disponível.
Protótipo da função= void inserePassag(char * mat, int tamL, int tamC, char sexo).
 
c) Verifica se há passageiro em uma poltrona.
Protótipo da função= bool verificaPassag(char * mat, int posL, int posC)
.Se ok retorna true, se a poltrona já estiver ocupada retorna false.
 
d) Conta quantas mulheres estão assentadas juntas numa mesma fileira de 3 poltronas juntas. Protótipo da função= int contaMulher(char * mat, int tamL, int tamC).
Link para o comentário
Compartilhar em outros sites

O primeiro exercício pode ser facilmente resolvido com ponteiro, numa linha apenas, veja

while(*txt++ = (*txt == de) ? para : *txt ) ;

Se quiser usar a notação de vetor, a lógica é simples.

 

No loop basta comparar o elemento com o caractere 'de' e caso seja verdadeiro atribua 'para':

if(txt[i] == de) txt[i] = para;
Link para o comentário
Compartilhar em outros sites

 

O primeiro exercício pode ser facilmente resolvido com ponteiro, numa linha apenas, veja

while(*txt++ = (*txt == de) ? para : *txt ) ;

Se quiser usar a notação de vetor, a lógica é simples.

 

No loop basta comparar o elemento com o caractere 'de' e caso seja verdadeiro atribua 'para':

if(txt[i] == de) txt[i] = para;

Obrigado! Agora entendi, meu problema era que errei a passagem de valor no código principal :)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...