einstein Posted May 22, 2012 at 08:57 PM Report #457473 Posted May 22, 2012 at 08:57 PM (edited) Pretendo fazer um programa que recebe uma string e elimine os espaços desnecessários entre as palavras, deixando apenas um espaço. Para isso pensei fazer uma função que execute esta acção, e também uma função que me diga se o caracter é espaço ou não. Alguém me pode dar uma dica de como posso fazer? #include <stdio.h> #include <stdlib.h> #include <string.h> int verif_espaco(char c){ if(c=='' || c=='\t' || c=='\n') return 1; else return 0; } void elimina_espa(char a[1024]){ } int main(){ char a[1024]; char string[1024]; printf("Digite uma string\n"); fgets(a,1024 , stdin); return 0; } Edited May 23, 2012 at 10:17 AM by softklin
pmg Posted May 22, 2012 at 09:18 PM Report #457478 Posted May 22, 2012 at 09:18 PM A biblioteca padrao de C ja tem uma funcao que verifica se um caracter e um espaco. Essa funcao tem o prototipo em <ctype.h> e chama-se isspace() http://pubs.opengroup.org/onlinepubs/9699919799/functions/isspace.html Na funcao propriamente dita para eliminar os espacos, percorre a string caracter a caracter e "copia-os" caso o anterior nao tenho sido um espaco. Tem atencao aos caracteres de fronteira: o(s) primeiro(s) e o(s) ultimo(s). What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Xis Posted May 22, 2012 at 09:47 PM Report #457483 Posted May 22, 2012 at 09:47 PM #include <ctype.h> void eliminar_espacos( char * cp0) { char * cp1; for (cp1 = cp0; *cp1 != '\0'; ++ cp1) if (!isspace(*cp1)) { *cp0 = *cp1; ++ cp0; } }
pmg Posted May 22, 2012 at 10:44 PM Report #457495 Posted May 22, 2012 at 10:44 PM #include <ctype.h> void eliminar_espacos( char * cp0) { char * cp1; for (cp1 = cp0; *cp1 != '\0'; ++ cp1) if (!isspace(*cp1)) { *cp0 = *cp1; ++ cp0; } } Entao e o '\0'? Nao o "copias"? Ficas com o resto da string pendurado? 🙂 What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Xis Posted May 22, 2012 at 11:38 PM Report #457502 Posted May 22, 2012 at 11:38 PM Isso é um exercício para o leitor... 😛
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now