Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luan Pedro

passagem de parametros por referencia

Recommended Posts

olááh pessoal,

estou desenvolvendo um pequeno aplicativo para usar strings .A idéia inicial ,era fazer um algoritmo que recebe-se na funçao principal uma string,envia-se,para a funçao segundaria,e me devolve´se a funçao principal a string original,com o se conteudo sobrescrito....

Entao fiz o algoritmo...

#include <cstdlib>
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
char troca_string(char *palavra)
{    char string[100];

     cout<<"Insira uma nova palavra:";
    gets(string);
    palavra = string;

}
int main(int argc, char *argv[])
{
    char palavra1[100];
    cout<<"Insira uma palavra:";
    gets(palavra1);
    troca_string(palavra1);
    cout<<"a nova palavra e:\n";
    puts(palavra1);
    system("PAUSE");
    return EXIT_SUCCESS;
}

O poblema é que a funçao nao me retorna o valor original sobrescrito..!

e segundo meu professor ,a lógica do exercicio,esta correta!....

Entao o que eu poderia estar fazendo?alguem poderia me ajudar?? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não use gets.

Se você está usando C++, por que usa char * p/ trabalhar com strings ao invés de usar a classe string? Ou, por que você inclui o string e usa char*?

Observe o que você está fazendo na função. O tipo de retorno é char, ao invés de char *.

 

#include <iostream>
using namespace std;

void troca_string(char * palavra) {

cout<<"Insira uma nova palavra:";
cin >> palavra;
}

int main(void)
{
char palavra[100];
cout<<"Insira uma palavra:";
cin >> palavra;
troca_string(palavra);
cout<<"a nova palavra é : " << palavra << endl;
return 0;
}

 

 

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

void troca_string(string& palavra) {
cout<<"Insira uma nova palavra:";
getline(cin , palavra);
}

int main(void)
{
string palavra;
cout<<"Insira uma palavra:";
getline(cin, palavra);
troca_string(palavra);
cout<<"a nova palavra é : " << palavra << endl;
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

aah sim ..>! :D

muito obrigado Isis por ter me ajudado nesse algoritmo.

mais agora me surgiu uma duvida .

qual a diferença entre eu usar uma string como um vetor do tipo char [] x classe string ??? :huh:

exemplo ,

char palavra[100]    x     string palavra
qual é a diferença nas duas formas de strings??? :huh:

desde já obrigado..

 

melhor reformulando minha pergunta anterior....

 

"o que seria essa "classe string"???" http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.