Jump to content

Recommended Posts

Posted

Boas pessoal, bem, eu estou a seguir o C++ Language Tutorial que fiz download do www.cplusplus.com e encontrei uma dúvida a qual não á referência no livro, por exemplo..

Em c++ , temos o #include <string> , que podemos criar uma string em vez de declarar um vector char.. Agora, a minha pergunta é, se eu quiser construir uma string (colocar caracteres numa determinada posição, retirar, etc.. ) ou quiser por exemplo saber o tamanho de uma string, ou localizar um caracter na string (uso de funções mais precisamente) , eu conssigo fazer isto tudo apenas com o <string> , ou ai já devo criar um array de caracteres para poder aceder ás posições e chamar a string.h para usar as funções de string ?

Eu fui ver a strings library do cplusplus e vi que lá tinha funções, mas são de utlização diferente, e como o livro não explica, surgem estas dúvidas xD

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Posted

Bem vindo ao quadro de C++ 👍

Wise choice 😉

C nao tem suporte nativo de strings, nos e' que reconhecemos string a um array de chars. Strings sao o que usas em C++, mas mesmo assim...

O objecto "string" em C++ tem varias funcoes, para o mais diversos gostos.

Por exemplo juntar 2 "strings" em C, era necessario usar malloc e andar a por o '\0' no final, em C++ nao e' necessario tanta coisa, basta fazer:

string str,str2;
str="ola, ";
str2=str+"sou";
cout<<str2<<endl;

etc...etc..

Podes converter uma string para um array de caracter(ao formato de C), usando a funcao:

str.c_str();

tambem concegues aceder ao caracter, na posicao que querias, como em C

string str="Ola";
str[0]; // 'O'
str.at(0);//e' igual

ja' agora se quiseres usar funcoes de C, usa o cstring

#include<cstring>

Eu fui ver a strings library do cplusplus e vi que lá tinha funções, mas são de utlização diferente, e como o livro não explica, surgem estas dúvidas xD

Ve o que cada funcao faz, e vais ver que sao uteis

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

todas, todas nao, a cstring e' a mesma biblioteca que a string.h, so' que esta ligueiramente modificada para C++, tem la' funcoes que se precisa quando queres funcoes de tratamento de memoria, coisa que nao tens na biblioteca string.

podes usar tambem funcoes de cstring com std::string

#include<cstring>
#include<string>

//...

char str[15];
string str2="asdhaskjdh";
strcpy(str,str2.c_str());

ja' agora, as funcoes que podem dar jeito na cstring, sao estas:

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

todas, todas nao, a cstring e' a mesma biblioteca que a string.h, so' que esta ligueiramente modificada para C++, tem la' funcoes que se precisa quando queres funcoes de tratamento de memoria, coisa que nao tens na biblioteca string.

podes usar tambem funcoes de cstring com std::string

#include<cstring>
#include<string>

//...

char str[15];
string str2="asdhaskjdh";
strcpy(str,str2.c_str());

ja' agora, as funcoes que podem dar jeito na cstring, sao estas:

Thanks 👍

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

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.