Ir ao conteúdo
  • Cadastre-se

problema com string


Posts recomendados

boa tarde fiz esse codigo porém quando vou criar o arquivo exe dele,aparece "warning: value computed is not used [-Wunused-value]"
 
Fazer um programa que receba uma string e dois caracteres e troque todas as ocorrências do primeiro caractere pelo segundo.
Exemplo: Seja a string "banana" e os caracteres 'a' e 'o', então a string ficará "bonono".
 
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string palavra;
    int i;
    char letra1,letra2;
    getline(cin,palavra);
    cin>>letra1>>letra2;
    for(i=0;palavra!='\0';i++)
    {
        if(palavra==letra1)
            palavra==letra2;
    }
    cout<<palavra<<endl;
}
 
Link para o comentário
Compartilhar em outros sites

noo pode cre hahaha valeu cara!


esse codigo pede a palavra e a letra, ai ele mostra em qual posiçao da string esta a letra digitada,

porque que quando executo esse codigo, nao aparece em qual posiçao esta a letra que procuro da palavra, se eu tirar a condiçao return -1, ai da certo,

mas preciso que retorne -1 caso nao haja a letra na palavra

 

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string palavra;
    char letra;
    int i;
    getline(cin,palavra);
    cin>>letra;
    for(i=0;palavra!='\0';i++)
    {
        if(palavra==letra)
            cout<<i<<" ";
        else
            return -1;
    }
    
    return 0;
}

Link para o comentário
Compartilhar em outros sites

Não faz sentido usar return nesse else.

O return é usado para encerrar a função e retornar um valor. Logo, basta uma condição de "palavra != letra",

para terminar o programa. Já que esse return está associado a função main.

O ideal é você criar outra função e colocar return -1 no final, caso ele não encontre nenhuma letra na string.

Link para o comentário
Compartilhar em outros sites

tipo isso

 

#include<iostream>
#include<string>
using namespace std;
string troca(string palavra);
int main()
 
{
string palavra;
char letra;
int i;
getline(cin,palavra);
cin>>letra;
troca(palavra);
return 0;
}
string troca(string palavra)
{
int i;
for(i=0;palavra!='\0';i++)
    {
        if(palavra==letra)
            cout<<i<<" ";
        else
            return '-1';
    }
 
 
só q ta dando erro, falando q nao dá pra retornar int
Link para o comentário
Compartilhar em outros sites

Deu erro pois o valor de retorno não é do mesmo tipo da função.

Mas se você quer apenas exibir -1, hão há necessidade de criar uma função, você pode fazer assim:

#include <iostream>#include <string>using namespace std;int main(){    string palavra;    bool existe = false;    int i;    char letra1, letra2;    getline(cin, palavra);    cin >> letra1 >> letra2;    for(i = 0; i < palavra.length(); i++)        if(palavra[i] == letra1){            palavra[i] = letra2;            existe = true;        }        if(existe == false)        cout << -1 << endl;    else        cout << palavra << endl;    return 0;}
Link para o comentário
Compartilhar em outros sites

acho q c junto os exercicios hahahaha

é esse aqui:

 

#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
string troca(string palavra,char letra);
int main()
 
{
    string palavra;
    char letra;
    int i;
    bool existe=false;
    getline(cin,palavra);
    cin>>letra;
    for(i=0;palavra!='\0';i++)
    {
        if(palavra==letra)
        {
            cout<<i<<" ";
            existe=true;
         }
         else if(existe==false)
             cout<<"-1"<<endl;
         }
    system("pause");
    return 0;
}
 
 
esse ai você digita a palavra e uma letra, dai imprime em qual posiçao da string esta a letra,se nao tiver a letra que você digitou então retorna -1
Link para o comentário
Compartilhar em outros sites

Basta fazer uma pequena alteração no código

int main(){    string  palavra;    bool    existe = false;    int     i;    char    letra1;    getline(cin, palavra);    cin >> letra1;    for(i = 0; i < palavra.length(); i++)        if(palavra[i] == letra1){            cout << i + 1 << endl;            existe = true;        }        if(existe == false) cout << -1 << endl;    return 0;}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...