Ir para conteúdo

Arquivado

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

Rafael Felippe

Transformar STRING de CHAR para INT em C++

Recommended Posts

Olá pessoal...estou com o seguinte problema... OBS.: é C++ Criei uma string de 100 posicoes...nela é inserida uma expressao matematematica ( tipo 2+36/8*9+7) até ai tudo bem... Agora eu preciso transformar estes elementos que estao na string ( que é do tipo CHAR) para o tipo INT. Tentei utilizar a funcao ATOI, dentro de um FOR, para alterar o primeiro elemento da string para int e joga-lo dentro de uma pilha que criei, em seguida ele faz o mesmo procedimento para o segundo elemento, depois para p terceiro e assim sucessivamente, até chegar no ultimo elemento ( que eu sei qual é pois utilizo a funcao STRLEN ) mas não esta dando certo.... Tentei algo mais facil tb, como por exemplo, transformar de uma vez só os elementos da string de CHAR para INT, mas tb nao consegui. Alguem poderia me dar uma força ai??? Abracos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem uma função que faz isso :DA função atoi(string) da biblioteca stdlib.h, retorna o inteiro correspondente à string.Flw xD

Abaixo segue um pedaço do programa .... Como pode ver abaixo ja tentei utilizar esta funçao ATOI, o problema é que quero pegar um unico elemento da STRING e converte-lo para INT, por exemplo, o elemento que esta na posição 3 da string e converter para INT, por isso utilizo o FOR no trecho ai abaixo ( para no final das contas todos os elementos da string serem convertidos para INT). Se tiver uma forma capaz de fazer esta transformação de uma só vez tb aceito...rsrs..O problema é que usando ATOI da maneiro que faço não esta dando certo...
#include <vcl.h>#include <iostream.h>#include <conio.h>#include<string.h>#include<stdlib.h>int main() // programa principal{ char expr[100]; // String ( vetor ) que ira guardar a expressao int elemento; int i; // contador do for int tamanho; // usado para mostrar o tamanho da string   cout << "Digite a expressao a ser calculada";   cin >> expr;   tamanho = strlen (expr); // strlen é uma função do C++ que retorna o tamanho da STRING   Pilha  numeros; // Inicializacao de uma pilha chamada numeros   for (i=0;i<tamanho;i++)	  {		elemento=atoi(expr[i]);		numeros.Empilha(elemento); // Joga na pilha o valor da variavel ELEMENTO 		 cout << "Mostra o valor que foi empilhado " << numeros.Desempilha() << endl;    // A lina acima retira da PILHA  o valor que esta no topo e mostra na tela		 }  getch(); }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente consegui resolver meu problema utilizando a funcao StrToInt. Abaixo segue um exemplo quase igual ao que usei no meu projeto....

 

Gostaria de saber qual a diferença entre a função StrToInt e a função ATOI ...

 

 

char expr[100];int elemento; expr="2+3/4*9"; for (i=0;i<10;i++)  elemento=StrToInt(expr[i]);  cout<<"Convertido para INT fica:"<<elemento;

Gostaria de saber qual a diferença entre a função StrToInt e a função ATOI ...

 

Walew

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.