Jump to content
Fórum Script Brasil
  • 0

Criar Funcao


Leonardo Prass
 Share

Question

5 answers to this question

Recommended Posts

  • 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;
}

 

Edited by Leonardo Prass
Link to comment
Share on other 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 to comment
Share on other 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++]?
Edited by Leonardo Prass
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...