Jump to content

Definir tamanho de Array


Quetzalma

Recommended Posts

Boas

Eu tou a iniciar-me em C++ e deparei-me com um problema:

Eu quero que o utilizador insira uma frase e para isso sei que o tenho que atribuir a um array de chars(gets), mas eu queria saber se existirá alguma maneira para saber quantos caracteres o utilizador escreveu e definir o array com esse tamanho para assim poupar espaço na memória que pode nunca ver a ser usado.

Espero que tenha sido explicito no que pretendia perguntar.

Link to comment
Share on other sites

eu tambem acho que sim, acho que o tipo string não existe em C++, mas posso tar errado.

enfim o meu objectivo é o seguinte:

o utilizador insere uma frase

depois insere uma palavra

e ele procura na frase a posição dessa palavra

se existir devolve a posição da 1ª letra

se não existir, diz ao utilizador que não encontrou

para isto tou a usar 2 fors encadeados e mais uns ifs e outras coisas, mas simplesmente gostava de saber como definir o tamanho de um array já depois do programa ter começado a correr

Link to comment
Share on other sites

eu tambem acho que sim, acho que o tipo string não existe em C++, mas posso tar errado.

enfim o meu objectivo é o seguinte:

o utilizador insere uma frase

depois insere uma palavra

e ele procura na frase a posição dessa palavra

se existir devolve a posição da 1ª letra

se não existir, diz ao utilizador que não encontrou

para isto tou a usar 2 fors encadeados e mais uns ifs e outras coisas, mas simplesmente gostava de saber como definir o tamanho de um array já depois do programa ter começado a correr

definir o tamanho de um array em tempo de execucao e facil so temos de usar malloc (eu penso que se pode utilizar malloc's em c++ mas nao tenho a certeza ja que o cplusplus foi um plus plus ao c 🙂 )

Link to comment
Share on other sites

epá... é C++ quase de certeza que estas a usar STL, se não estas é aconselhavel.

Exemplo relampago:

#include <string>
#include <iostream>
using namespace std;

int main(void){
  string xpto;
  cin>>xpto;
  cout<<xpto;

  return 0;
}

Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!

Link to comment
Share on other sites

sim penso que e possivel usar o malloc, provavelmente devemos conseguir aceder a esta funcao atraves do header cstdlib.

outra maneira possivel e

char *s=new char[n]; // sendo n o numero de posicoes que queras colocar no teu array de char's.

nao testei nada disto mas penso que era assim que eu fazia quando andei a mexer em c++

boas programacoes.

ps. quando ja nao necessitares da memoria nao te esquecas de fazer free ou de fazeres um delete [].

Link to comment
Share on other sites

O free utiliza-se para libertar memória alocada pelo malloc (e afins); o delete utiliza-se para libertar memória alocada pelo new. Não misturem, não é opcional.

eu tambem acho que sim, acho que o tipo string não existe em C++, mas posso tar errado.

O tipo string existe em C++ através da Standard Templates Library. Quem te disse que o tipo string não existe em C++ não te enganou, de facto não existe um tipo string intrínseco à linguagem. Mas em STL está definido o tipo string.

Desaparecido.

Link to comment
Share on other sites

O free utiliza-se para libertar memória alocada pelo malloc (e afins); o delete utiliza-se para libertar memória alocada pelo new. Não misturem, não é opcional.

eu tambem acho que sim, acho que o tipo string não existe em C++, mas posso tar errado.

O tipo string existe em C++ através da Standard Templates Library. Quem te disse que o tipo string não existe em C++ não te enganou, de facto não existe um tipo string intrínseco à linguagem. Mas em STL está definido o tipo string.

sim claro esta, apenas disse que com o malloc se deveria fazer free e com o new usar o delete (neste caso o delete [])

cada macaco no seu galho, ou seja c para um lado e c++ para outro, apesar de em c++ se poder usar c, em c nao se pode usar c++ .

boas programacoes.

Link to comment
Share on other sites

  • 3 weeks later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.