Ir para conteúdo
Fórum Script Brasil
  • 0

Criar Funcao


Leonardo Prass

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0

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 por Leonardo Prass
Link para o comentário
Compartilhar em outros sites

  • 0

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
string

si você modificar a linha

printf ("%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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 por Leonardo Prass
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...