MHB Calculate Strings with int calculate(string exp) Function

  • Thread starter Thread starter needOfHelpCMath
  • Start date Start date
  • Tags Tags
    Computation String
AI Thread Summary
The discussion centers around creating a function, `calculate(string exp)`, that evaluates mathematical expressions represented as strings. The function aims to parse the input string, identify operators, and compute the result of the expression. Key points include the need to separate the left and right operands from the operator, convert character digits to integers, and perform the corresponding arithmetic operations based on the identified operator. A suggestion is made to use the `atoi` function for converting strings to integers, which simplifies the conversion process. The user expresses confusion about converting strings to numbers and performing calculations, indicating a need for further clarification on these concepts.
needOfHelpCMath
Messages
70
Reaction score
0
If input is 2: call int calculate(string exp) function. This function will return the
computation of a string expression (exp). For example:
calculate(“54321+222”) will return 54543
calculate(“120*20”) will return 2400
calculate(“235/3”) will return 78
calculate(“356-32”) will return 324My code:

HTML:
// function should return int, not void: int calculate(..)
int calculate(string exp) 
{
	int answer = 0; // store answer in here
	string left = "right";
	char op; //operator
	int i = 0;
	 // use to code left the operator and right seperating it in order to convert it into real numbers
	for (i = 0; i < exp.size(); ++i) {
		if (isdigit(exp.at(i))) { 
		
			left =  left + exp.at(i);
		}
		
		else {
			op = exp.at(i);
			break;
		}
	} ++i;
	
	for (int j = i; j < exp.size(); ++j) {
		right = "right" + exp.at(i);
	}
	// use ASCII char to get int conversion: '0' == 48, '1' == 49, '2' == 50, ... and so on
	// subtract each character in string by 48 to get int values
	// examle: if exp = "9", then exp[0] - 48 = 9
	
	for(i = 0; i < exp.length(); i++) {
		// put your if statements to check for plus, minus, times, divide
		if (i < exp.length()) {
			answer = exp.at(i)-48;
		}
			
		if (isdigit(exp.at(i))) {
		
			answer = exp.at(i)- 48;
		}
	}
	// check for a plus
		// if found add the two numbers
	// check for minus
		// if found, subtract the two numbers
	// check for a times
		// if found, multiply the two numbers
	// check for divide
		// if found, divide the to numbers
	// if nothing is found
		// return
	return answer;     
}
what I can't and don't understand is how convert into strings into numbers and also compute them.
 
Technology news on Phys.org
needOfHelpCMath said:
what I can't and don't understand is how convert into strings into numbers and also compute them.

Hey needOfHelpCMath! ;)

To convert a string into a number we can use:
Code:
int number = atoi(str.c_str());
[m]atoi[/m] is short for ascii-to-integer.
 
I like Serena said:
Hey needOfHelpCMath! ;)

To convert a string into a number we can use:
Code:
int number = atoi(str.c_str());
[m]atoi[/m] is short for ascii-to-integer.

thank you! ill try that out
 
Thread 'Is this public key encryption?'
I've tried to intuit public key encryption but never quite managed. But this seems to wrap it up in a bow. This seems to be a very elegant way of transmitting a message publicly that only the sender and receiver can decipher. Is this how PKE works? No, it cant be. In the above case, the requester knows the target's "secret" key - because they have his ID, and therefore knows his birthdate.
Thread 'Project Documentation'
Trying to package up a small bank account manager project that I have been tempering on for a while. One that is certainly worth something to me. Although I have created methods to whip up quick documents with all fields and properties. I would like something better to reference in order to express the mechanical functions. It is unclear to me about any standardized format for code documentation that exists. I have tried object orientated diagrams with shapes to try and express the...
Back
Top