Leonardo Prass Postado Setembro 22, 2015 Denunciar Share Postado Setembro 22, 2015 Eu preciso de uma funcao que leia uma frase e retire os espacos como faco isso e sem usar strings? exemplo: Ola Mundo ele imprima OlaMundo tudo que seja digitado ele ignora os espacos.eu utilizo um if (frase==' \0 ') ou o que n tenho nem ideia de como fazer se alguém souber agradeceria.agradeço . Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Setembro 22, 2015 Denunciar Share Postado Setembro 22, 2015 use strtok para separar elas, e logo vaia guardando elas em um string sem espaços com sprintf. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leonardo Prass Postado Setembro 22, 2015 Autor Denunciar Share Postado Setembro 22, 2015 (editado) Não enetendi o mais proximo que achei foi esse do que eu queria fazer,porem não quero utilizar strings nem ponteiros.#include <stdio.h> #include <stdlib.h> #include <string.h> using namespace std; #include<iostream> void deslocaEsq(char *sVetor, int iIndice){ for(int i = iIndice; i < strlen(sVetor); i++){ sVetor[i] = sVetor[i+1]; } } int main(){ char sVetor[40]; int i; cout<<("Digite a frase: "); cin>>sVetor[40]; sVetor[strlen(sVetor)-1] = '\0'; cout<<"Frase Original: \n"<< sVetor[40]; for(i = 0; i < strlen(sVetor); i++) while (sVetor[i] == ' ') deslocaEsq(sVetor, i); cout<<"Frase Modificada: "<< sVetor[40]; return 0; } Editado Setembro 22, 2015 por Leonardo Prass Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leonardo Prass Postado Setembro 22, 2015 Autor Denunciar Share Postado Setembro 22, 2015 uma funcao mais ou menos assim eu estava imaginando #include <stdio.h> #include <iostream> using namespace std; int main(){ char frase[60]; cout<<"Digite A Frase: "; cin>>frase; if (frase!='\0'){ cout<< frase;} } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Setembro 22, 2015 Denunciar Share Postado Setembro 22, 2015 te disse que use strtok. na pagina de referencia http://www.cplusplus.com/reference/cstring/strtok/, tem um exemplo que com um minimo retoque serve perfeitamente para seu exemplo./* strtok example */ #include <stdio.h> #include <string.h> int main () { char str[] ="- This, a sample string."; char * pch; printf ("Splitting string \"%s\" into tokens:\n",str); pch = strtok (str," ,.-"); while (pch != NULL) { printf ("%s\n",pch); pch = strtok (NULL, " ,.-"); } return 0; }Ele pega a frase "- This, a sample string." e imprime ela:This a sample stringsi você modificar a linhaprintf ("%s\n",pch);...retirando o \n ele vai imprimir tudo junto sem espaços na mesma linha, pois os tokens são " ,.-", em outras palavras são espaço, vírgula, ponto e traço alto, o programa vai dividir toda a frase justo no ponto que encontrar esses caracteres excluindo-lhes da frase. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leonardo Prass Postado Setembro 22, 2015 Autor Denunciar Share Postado Setembro 22, 2015 (editado) eu consigui porem gostaria saber fazer a mesma coisa sem utilizar strings#include<iostream> #include<string> #include<string.h> #include<strings.h> using namespace std; char frase[60], nova[60]; int x,contador; int main() { cout << "Digite sua frase: "; cin.getline(frase,60); for(x=0;x<=strlen(frase);x++) if(frase[x]!=' ') nova[contador++]=frase[x]; cout << "Frase sem espaços: " << nova << "\n"; return 0; } e converter isso em uma funcao n sei se tu conseguiu me entender? for(x=0;x<=strlen(frase);x++) if(frase[x]!=' ') nova[contador++]=frase[x];>>>>> e poderia me explicar esta parte que eu não compreendi muito bem me insperei em um codigo da internet e não compreendi o for e o comando strlen,if frase[x] != ' 'compreendi que significa o espaco porem porque, nova [contador++]? Editado Setembro 22, 2015 por Leonardo Prass Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Leonardo Prass
Eu preciso de uma funcao que leia uma frase e retire os espacos como faco isso e sem usar strings?
exemplo: Ola Mundo ele imprima OlaMundo tudo que seja digitado ele ignora os espacos.
eu utilizo um if (frase==' \0 ') ou o que n tenho nem ideia de como fazer se alguém souber agradeceria.
agradeço .
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.