Ir ao conteúdo
  • Cadastre-se
Mateus Lara

RESOLVIDO Remover caractere de uma string

Recommended Posts

Boa tarde pessoal. Sou novo aqui no fórum e também em C/C++.

 

Tenho que desenvolver um código em C que:

 

-  leia duas strings do teclado;

 

- concatene os strings lidos;

 

- remova o caractere do meio de cada string e imprima o resultado disso.

 

Comecei fazendo esse código

 

 
#include <stdio.h>#include <string.h>int main(){    char str1[10];    char str2[10];         printf("Entre com uma string: ");      gets(str1);      printf("Entre com outra string: ");    gets(str2);     printf("A primeira string e: %s", str1);    printf("\n");   printf("A segunda string e: %s", str2);    printf("\n");           printf("Concatenacao dos strings lidos:%s",  strcat(str1, str2));   printf("\n");/* essa parte aqui fiz para ver o tamanho da string e dividir ao meio. Pensei nisso, mas a partir daí não sei o que fazer mais, nem se é a melhor solução. int y = strlen(str1);int x = strlen(str2);int a = (y-x);         printf("A primeira string tem: %d", a); printf("\n");printf("A segunda string tem: %d", x);   printf("\n");int tamanhoy = a/2;int tamanhox = x/2; printf("A metade da primeira string e: %d", tamanhoy); printf("\n");printf("A metade da segunda string e: %d", tamanhox);   printf("\n");*/  return 0;}

 

Bom, quem puder me ajudar, ficaria agradecido uhauhahuha! 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que existam varias formas de fazer isso que esta precisando, porém uma boa implementacao seria da seguinte forma:

char word[5] = "teste";int tam = strlen(word);int del = 2; // Lembre-se que os indices comecam no zeromemmove(&word[del], &word[del+1], tam - del);

devo lembrar que essa nao é a unica forma de fazer se voce conseguiu de outra forma a utilize, pois voce deve ter um merito agregado a essa solucao.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, como vai? Tente utilizar isso:

 

 int ind; ind = (strlen(str1) - 1) / 2;   // Usa-se -1 para não contar com o /0 

 

Será atribuído para a variável "ind" o valor do índice da string que contém o caractere que está no meio dela. Dessa forma, é só fazer:

 

 str1[ind] = ' '; 

 

E o caractere central da string ficará em branco. Espero que tenha ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em geral nesses exercícios de aula os professores pedem que os alunos desenvolvam seus algoritmos ao invés de utilizar as funções prontas, com o intuito de treinar seus alunos, fazê-los aprenderem. E infelizmente me parece que na maioria dos casos aqui nesta seção os alunos postam seus exerícios, recebem códigos prontos, colam as respostas em seus exercícios e não aprendem nada. :(

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu consegui fazer o exercício e tinha me esquecido de postar a solução. @Fernando Mercês eu não queria o código pronto não huahuahauha 

vou postar aqui a minha solução e podem colocar como resolvido.

 

@sepoki @Programadora Principiante obrigado pela ajuda! 

#include <stdio.h>#include <string.h>int Questao01(){    char str1[50];    char str2[50];    char str3[50];    printf("Entre com uma string: ");    scanf("%s", &str1);    printf("Entre com outra string: ");    scanf("%s", &str2);    printf("\n");    printf("A primeira string e: %s \n \n", str1);    printf("A segunda string e: %s \n \n", str2);    strcpy(str3,str1);    strcat(str3, str2);    printf("Concatenacao dos strings lidos: %s \n \n", str3);    int x = strlen(str1);    if (x%2 != 0) {        int i=0;        int j=0;        for (i=0; i<x; i++) {            if (i != x/2) {                str1[j] = str1[i];                j++;            }        }        str1[j] = '\0';        printf("A primeira string sem o caracter do meio e: %s \n \n", str1);    } else {        printf("A primeira string possui numero PAR de caracteres e portanto nao possui caracter do meio neste codigo! \n \n");    }    int y = strlen(str2);    if (y%2 != 0) {        int i=0;        int j=0;        for (i=0; i<y; i++) {            if (i != y/2) {                str2[j] = str2[i];                j++;            }        }        str2[j] = '\0';        printf("A segunda string sem o caracter do meio e: %s \n \n", str2);    } else {        printf("A segunda string possui numero PAR de caracteres e portanto nao possui caracter do meio neste codigo! \n");    }return 0;}

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

×