• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

andrw

Dúvida com strings

10 mensagens neste tópico

Boa tarde!

Estou a começar com C++ e surgiu-me o seguinte problema para o qual peço a vossa ajuda:

Pretendia colocar em letra2 a 1ª letra da string letra, em minúscula:

string letra2 = tolower(letra[0]);

Qual é o erro? Agradeço desde já futuras respostas, cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Após algumas alterações, nomeadamente a mudança de string para char, consegui fazer o que pretendia...

Fiquei sem entender bem o que se tinha passado porque a certa altura o erro deixou de ocorrer.

Obrigado de qualquer forma pela resposta, abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando ocorrer um erro, EXPLIQUEM em que consiste o erro. Dizer que "acontece um erro" não é nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tudo bem :thumbsup:

Peço desculpa mas já não consigo voltar a simular o erro para poder apresentar aqui a mensagem de erro exibida. Para a próxima que colocar uma questão, indicarei mais detalhes.

Obrigado, cumprimentos []

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, agora não consegues voltar a fazer o erro, estou só a alertar para futuras situações porque é muito comum não se chegar a conclusões por falta de informação =)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aproveito este tópico para colocar um outro problema:

Pretendo que seja lido do teclado uma palavra e um número e que seja gerada aleatoriamente uma nova palavra com caracteres presentes na palavra anteriormente lida e tamanho igual ao numero lido do teclado sem repetição de caracteres...

O código que fiz foi o seguinte:

#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int main ()
{
srand((unsigned int)time (0));
cout << "PALAVRA ? ";
string palavra;
cin >> palavra;
cout << "COMPRIMENTO ? ";
unsigned int comprimento;
cin >> comprimento;
string palavra2;
int i = 0;

while (i < comprimento)
{int x = rand() % (comprimento);
if (palavra2.find(palavra[x]) = string::npos)
	{palavra2 += palavra[x];
	++i;}}

cout << "RESULTADO : " << palavra2;

}

ERRO: non-lvalue in assignment at line 25 - C/C++ Problem

[]'s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

if (palavra2.find(palavra[x]) = string::npos)

ouch. Tenho a certeza que consegues ver quais são os erros nesta linha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Enganei-me, tinha que ser ==... estou a começar  :-[

já agora, falaste-me em erros (no plural)... há mais algum problema? abraço e obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não ligues. Tinha acabado de acordar e para além do = pareceu-me ver um parêntesis mal colocado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora