Buscar

me ajudem nessa

1) Preparar um procedimento TRIM para aceitar como parâmetro uma cadeia de caracteres arbitrária e retornar uma cadeia contendo somente os caracteres alfabéticos da cadeia original. Todos os caracteres brancos, sinais de pontuação, números e caracteres especiais devem ser removidos. 2) Projetar um procedimento REVERSO para aceitar como parâmetro uma cadeia de caracteres arbitrária e retornar uma cadeia com o mesmo comprimento, na qual o primeiro caractere de entrada é o último de saída e assim por diante.

💡 2 Respostas

User badge image

Joao Andre MArtins Dias

/*
 * 1) Preparar um procedimento TRIM para aceitar como parâmetro uma cadeia de caracteres arbitrária
 * e retornar uma cadeia contendo somente os caracteres alfabéticos da cadeia original.
 * Todos os caracteres brancos, sinais de pontuação, números e caracteres especiais devem ser removidos.
 * 2) Projetar um procedimento REVERSO para aceitar como parâmetro uma cadeia de caracteres arbitrária
 * e retornar uma cadeia com o mesmo comprimento,
 * na qual o primeiro caractere de entrada é o último de saída e assim por diante.
 */

/*
 * File:   main.cpp
 * Author: joao
 *
 *
 * Created on 28 de Julho de 2017, 16:26
 */

#include <cstdlib>
#include<string.h>
#include<stdio.h>
#include <ctype.h>
using namespace std;

/*void trimStr(char[],char[])
 * @param str1 Cadeia de entrada
 * @param str2 Cadeia de saida
 * Recebe uma cadeia de caracteres e retorna por parâmetro uma nova cadeia sem
 * os caracteres não alfabéticos.
 */
void trimStr(char str1[], char str2[]) {
    int len = strlen(str1), i = 0, k = 0;
    if (len > 0) {
        while (i < len) {
            if (isalpha(str1[i])) {
                str2[k++] = str1[i];
            }
            i++;
        }
        str2[k] = '\0';
    }
}

/* void inverterStr(char str1[])
 * @param str1 Cadeia de entrada
 * Recebe uma cadeia de caracteres como parâmetro e reverte seu contúdo
 */
void inverterStr(char str1[]) {
    char aux;
    int len = strlen(str1), k, i = 0, meio;
    if (len > 0) {
        meio = len / 2;
        k = len - 1;
        while (i < meio) {
            aux = str1[k];
            str1[k] = str1[i];
            str1[i] = aux;
            i++;
            k--;
        }

    }
}

int main(int argc, char** argv) {
    char strTeste[38], strTeste1[38];
    strcpy(strTeste, "* >> Inverteu esta buceta 123! << * ");
    printf("\n[%s] \n", strTeste);
    trimStr(strTeste,strTeste1);
    printf("\n[%s] \n",strTeste1);
    inverterStr(strTeste);
    printf("\n[%s] \n", strTeste);
}

5
Dislike0
User badge image

Joao Andre MArtins Dias

Espero ter ajudado. O primeiro Utilizei a função da biblioteca ctype do proprio C que identifica se um caracter é alpha ou não, acho que não precisa einventar a roda. No outro executo um loop while até o tamanho da metade do comprimento da cadeia de caracteres, invertendo o conteudo de i com k , incrementando i (posicao inicio da palavra)e decrementando k(pos fim da palavra).

2
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais