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 'Star maps using Blender'
Blender just recently dropped a new version, 4.5(with 5.0 on the horizon), and within it was a new feature for which I immediately thought of a use for. The new feature was a .csv importer for Geometry nodes. Geometry nodes are a method of modelling that uses a node tree to create 3D models which offers more flexibility than straight modeling does. The .csv importer node allows you to bring in a .csv file and use the data in it to control aspects of your model. So for example, if you...
I tried a web search "the loss of programming ", and found an article saying that all aspects of writing, developing, and testing software programs will one day all be handled through artificial intelligence. One must wonder then, who is responsible. WHO is responsible for any problems, bugs, deficiencies, or whatever malfunctions which the programs make their users endure? Things may work wrong however the "wrong" happens. AI needs to fix the problems for the users. Any way to...
Back
Top