Ir ao conteúdo
  • Cadastre-se
yurirodri

Ajuda com C/C++

Recommended Posts

Eu sou iniciante na programação, gostaria de algum código ou ajuda para criar um, em que fosse pedido ao usuário que inserisse alguma palavra, ai dependendo da palavra inserida pelo usuário, o programa executaria por exemplo uma soma, ou diria o dia da semana.

Desde já agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para isto existem as condicionais

 

Veja como exemplo este código

#include <iostream>#include <cstring>int main(){    char minhaString [50];    std::cout << "Digite alguma palavra: ";    std::cin >> minhaString;    if(strcmp(minhaString, "teste") == 0)    {        std::cout << "Parabens, você digitou a palavra 'teste'" << std::endl;    }    return 0;}

Seria interessante você ver códigos como este e fazer alguns testes com o mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda!

Vou tentar aqui.


Deu um erro na primeira linha você poderia me ajudar a resolver?


Uma pergunta está em C ou C++?

Compartilhar este post


Link para o post
Compartilhar em outros sites

erro: iostream: no such file or directory

 

teria com você me enviar algum link que explique isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto é devido ao seu compilador não ter encontrado a include iostream em seu devido lugar. Qual IDE você está usando? De começo, podes utilizar Dev C++.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu estou usando o Code:Blocks gostaria de saber se é bom?

Você teria alguns exemplos?


Por favor, você teria como colocar esse código comentado, para melhor compreensão, como sou novo na programação fiquei meio perdido e não é fácil achar muitos exemplos como esse.

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <iostream> //biblioteca de entrada e saida de dados#include <cstring> //biblioteca para tratamento de stringsint main(){    char minhaString [50]; //aqui declaramos´ "50 chars", armazenando na memoria    std::cout << "Digite alguma palavra: "; // Escrevemos na tela do usuario    std::cin >> minhaString; // Pega o que o usuario digitou e armazena na variável    if(strcmp(minhaString, "teste") == 0) //verifica se as duas strings são iguais    {        std::cout << "Parabens, você digitou a palavra 'teste'" << std::endl;    }    return 0;}

Espero que seja isto. Mas de qualquer maneira, lhe recomendo estudar C primeiramente. A internet é muito vasta, e com certeza você encontrará ótimos guias, basta procurar.

 

Abraços :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém poderia me dizer, como eu defino, uma palavra na string e comparo ela com a inserida pelo usuário e ela sendo igual a escrita pelo usuário o programa executa uma certa parte do programa.

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém poderia me dizer, como eu defino, uma palavra na string e comparo ela com a inserida pelo usuário e ela sendo igual a escrita pelo usuário o programa executa uma certa parte do programa.

Desde já agradeço.

Neste caso seria o mesmo processo do código que mandei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha o eu fiz
 

#include<stdio.h>int main(void){char palavra1 [50];printf("No que posso ajudar: ");scanf("%s",&palavra1);if()/ eu não to entendo como ficaria o código aqui.{;}else{printf("");}getchar();getchar();}

Tipo eu acho que teria que colocar varias condicionais uma para cada palavra, e dentro dessa condicional colocaria o código a ser executado, eu não estou entendendo como fazer o programa diferenciar as palavras, como colocar isso dentro da if.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso você precisa comparar duas strings, verificando igualdade, para isto você utiliza strcmp.

if(strcmp(Variavel1,Variavel2)) == 0)//No caso, continua a execução do bloco abaixo caso Variavel1 seja igual a Variavel2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso essa segunda string seria a palavra que foi inserida pelo usuário?


o que eu teria que mudar na scanf então?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso essa segunda string seria a palavra que foi inserida pelo usuário?

o que eu teria que mudar na scanf então?

 

Exatamente. No Scanf nada, você simplesmente precisar criar uma nova condicional verificando se as strings são iguais.

if(strcmp(palavra1, "ALGO")) == 0){     //funções caso a verificação acima seja verdadeira, ou seja, palavra1 seja igual a "ALGO"}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado, você tem me ajudado muito, só perdoe minha ignorância.
 

O código está assim:

#include<stdio.h>#include<string.h>int main(void){char calculadora [50];printf("No que posso ajudar: ");scanf("%s",&calculadora);if(strcmp(calculadora, "ALGO")) == 0){     //Aqui eu colocaria o código da calculadora}else{printf();}getchar();getchar();} 

só que esta dando esses três erros: expected statement before ')' token, 'else' without a previous 'if' e erro too few arguments to function 'print', você poderia me ajudar a conserta?

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>#include <string.h>int main(void){     char calculadora [50];     printf("No que posso ajudar: ");     gets(calculadora);     if(strcmp(calculadora, "ALGO")) == 0)     {          //Aqui eu colocaria o código da calculadora     } else {	  printf("Voce digitou um comando desconhecido!");     }     getch();}

Dei uma reorganizada no seu código, não sou muito familiarizado com C, e nem mesmo compilei este código, mas deve funcionar.

 

Já que está começando, recomendo ler sobre indentação, ou seja, organizar visualmente seu código de forma com que ele fique em "blocos", em espécie de árvore, pode encontrar mais detalhes com uma rápida pesquisa.

 

Quanto a ignorância, tenha certeza, você não está sendo ignorante, você simplesmente é um novato querendo aprender, é diferente :) 

 

Abraços, e qualquer dúvida não hesite em perguntar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Instale o Visual Studio, vai resolver seu problema de escrita de codigo, terá que se preocupar com a logica apenas.

if(strcmp(calculadora, "ALGO") == 0)

Note que no codigo do Dolby existe um parenteses a mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela organização, to tentando ler mais e obrigado pelos concelhos, vou tentar inserir a calculadora no código depois posto aqui. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu inserir o código da calculadora na condicional, só que quando compilo aparece o "No que posso ajudar", só que quando digito calculadora aparece na tela "você digitou um comando errado" só que era para executa a calculadora, o código ficou assim:

#include <stdio.h>#include <string.h>#include <conio.h>#include <ctype.h>#include <stdlib.h>int main(void){     char calculadora [50];     printf("No que posso ajudar: ");     gets(calculadora);     if(strcmp(calculadora, "ALGO") == 0)     {          char opcao;int numero1, numero2;do{system("cls");printf("Pressione A para fazer uma Soma\n");printf("Pressione B para fazer uma Subtracao\n");printf("Pressione C para fazer uma Multiplicacao\n");printf("Pressione D para fazer uma Divisao\n");printf("Pressione S para sair\n");opcao = getch();opcao = toupper(opcao);switch(opcao){case 'A':printf("Voce escolheu fazer uma Soma!\n\n");printf("Digite o primeiro numero em seguida [Enter]\n");scanf("%d",&numero1);printf("Digite o Segunado Numero em seguida [Enter]\n");scanf("%d",&numero2);printf("O resultado e [%d]\n\n",numero1 + numero2);system("pause");break;case 'B':printf("Voce escolheu fazer uma Subtracao!\n\n");printf("Digite o primeiro numero em seguida [Enter]\n");scanf("%d",&numero1);printf("Digite o Segundo Numero em seguida [Enter]\n");scanf("%d",&numero2);printf("O resultado e [%d]\n\n",numero1 - numero2);system("pause");break;case 'C':printf("Voce escolheu fazer uma Multiplicacao!\n\n");printf("Digite o primeiro numero em seguida [Enter]\n");scanf("%d",&numero1);printf("Digite o Segundo Numero em seguida [Enter]\n");scanf("%d",&numero2);printf("O resultado e [%d]\n\n",numero1 * numero2);system("pause");break;case 'D':printf("Voce escolheu fazer uma Divisao!\n\n");printf("Digite o primeiro numero em seguida [Enter]\n");scanf("%d",&numero1);printf("Digite o Segundo Numero em seguida [Enter]\n");scanf("%d",&numero2);printf("O resultado e [%d]\n\n",numero1 / numero2);system("pause");}}while(opcao != 'S');}      else {	  printf("voce digitou um comando desconhecido!");}     getch();} 

Você saberia me dizer o que eu fiz errado?

 Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja este parte

if(strcmp(calculadora, "ALGO") == 0)

"ALGO" é o "comando", ou seja, é para verificar se o que o player digitou(o que está armazenado na variável calculadora) é igual a "ALGO".

 

Mude ALGO pela comparação que deseja, no caso, "calculadora".

Vale lembrar que strcmp é case sensitive, ou seja, se você usar:

if(strcmp(calculadora, "CALCULADORA") == 0)

e digitar calculadora, a condição não será verdadeira.

 

 

Espero que tenha entendido, caso contrário pode perguntar novamente, abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu queria que na hora que o usuário escrevesse  calculadora executasse o código abaixo. 

Mas se eu escrever não seria verdadeira, o que eu poderia fazer para quando escrevesse calculadora ou algo do tipo fosse executado o código abaixo?


Muito obrigado!

Quando troquei algo por calculadora e rodei o programa funcionou exatamente como eu queria, a unica coisa estou em duvida como fazer agora é para quando colocar sair na calculadora, fazer o programa voltar para o "No que posso ajudar", pois queria criar outras condicionais, você poderia me esclarecer isso?

Desde já agradeço.


Também gostaria de saber se eu tirar esse else, colocar outra variável, no caso se o usuário escrevesse outra coisa sem ser calculadora, não iria aparecer você digitou um comando desconhecido e sim verificaria a segunda condicional para ver se a palavra inserida pelo usuário é igual a próxima string, iria verificar todas as strings existentes no programa, se fosse igual a alguma string executaria outra parte do código, eu poderia fazer isso do mesmo modo da calculadora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer algo como:

definir a variável X como uma palavra ( ex: soma ) e nisto checar se o player escreveu "soma" e continuar o programa.

if(strcmp(palavra1, "soma") == 0)

Compartilhar este post


Link para o post
Compartilhar em outros sites

@yurirodri você pode criar uma nova condicional utilizando else if:

 

 

E você também pode utilizar um "comando" para voltar ao início, utilizando strcmp da mesma forma com que fez. No caso pode usar recursividade ou o comando goto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado vou fazer assim então.


Esta correto assim:

#include <stdio.h>#include <string.h>#include <conio.h>#include <ctype.h>#include <stdlib.h>int main(void){     char calculadora [50];     printf("No que posso ajudar: ");     gets(calculadora);     if(strcmp(calculadora, "calculadora") == 0)     {          char opcao;int numero1, numero2;do{system("cls");printf("Pressione A para fazer uma Soma\n");printf("Pressione B para fazer uma Subtracao\n");printf("Pressione C para fazer uma Multiplicacao\n");printf("Pressione D para fazer uma Divisao\n");printf("Pressione S para sair\n");opcao = getch();opcao = toupper(opcao);switch(opcao){case 'A':printf("Voce escolheu fazer uma Soma!\n\n");printf("Digite o primeiro numero em seguida [Enter]\n");scanf("%d",&numero1);printf("Digite o Segunado Numero em seguida [Enter]\n");scanf("%d",&numero2);printf("O resultado e [%d]\n\n",numero1 + numero2);system("pause");break;case 'B':printf("Voce escolheu fazer uma Subtracao!\n\n");printf("Digite o primeiro numero em seguida [Enter]\n");scanf("%d",&numero1);printf("Digite o Segundo Numero em seguida [Enter]\n");scanf("%d",&numero2);printf("O resultado e [%d]\n\n",numero1 - numero2);system("pause");break;case 'C':printf("Voce escolheu fazer uma Multiplicacao!\n\n");printf("Digite o primeiro numero em seguida [Enter]\n");scanf("%d",&numero1);printf("Digite o Segundo Numero em seguida [Enter]\n");scanf("%d",&numero2);printf("O resultado e [%d]\n\n",numero1 * numero2);system("pause");break;case 'D':printf("Voce escolheu fazer uma Divisao!\n\n");printf("Digite o primeiro numero em seguida [Enter]\n");scanf("%d",&numero1);printf("Digite o Segundo Numero em seguida [Enter]\n");scanf("%d",&numero2);printf("O resultado e [%d]\n\n",numero1 / numero2);system("pause");}}while(opcao != 'S');}     else{	  printf("voce digitou um comando desconhecido!");}       char definir [50]       printf("Qual definição");     gets(definir);     if(strcmp(definir, "definir") ==0)     {              }     getch()

Depois vou fazer o negocio pra voltar pro começo mais a ligação entre o posso ajudar e a definição esta correta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×