Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在C语言中对字符串执行算术运算#_String_Algorithm_C# 4.0_Arithmetic Expressions - Fatal编程技术网

String 在C语言中对字符串执行算术运算#

String 在C语言中对字符串执行算术运算#,string,algorithm,c#-4.0,arithmetic-expressions,String,Algorithm,C# 4.0,Arithmetic Expressions,我是C#初学者,我从文本框中提取字符串并应用以下算法,但操作数和运算符的中断不起作用 string cal = "225+699"; char[] all= cal.ToCharArray(); int i=0,j=0; while (all[i] != '+' || all[i] != '-' || all[i] != '/' || all[i] != 'x') { j++;

我是C#初学者,我从文本框中提取字符串并应用以下算法,但操作数和运算符的中断不起作用

    string cal = "225+699"; 
        char[] all= cal.ToCharArray();
        int i=0,j=0;
        while (all[i] != '+' || all[i] != '-' || all[i] != '/' || all[i] != 'x')
        {

            j++;

        } // first operator check 
        char op = all[j + 1]; // operator save
        char[] part1 = new char[j];

        for (i = 0; i <= j; i++)
        {
            part1[i] = all[i];
        }
        string inp = Convert.ToString(part1);
        float a = float.Parse(inp); // first operand
        int l=cal.Length-(j+1);
        char[] part2 = new char[l];
        int c = 0;
        for (i = j + 1; i <= cal.Length; i++)// starts after operator
        {
            part2[c] = all[i];
            c++;

        }

        string h = Convert.ToString(part2);
        float b = float.Parse(h); // other operand 
string cal=“225+699”;
char[]all=cal.ToCharArray();
int i=0,j=0;
而(全部[我]!='+'|全部[我]!='-'|全部[我]!='/'|全部[我]!='x')
{
j++;
}//第一次操作员检查
char op=all[j+1];//操作员保存
char[]part1=新字符[j];

对于(i=0;i先决条件:学习该语言的基础知识。例如,您可以对字符串使用索引器,或者如何使用列表而不是数组。了解逻辑运算符的工作方式,您的
,例如,当
条件始终为真或引发异常时,它似乎也不合适,因为这里没有嵌套循环,但看起来很简单它属于一个。底线是——你进入的太深太快了

如果你是一个初学者,想学习语法分析……回到书中,阅读一些理论,找出什么是语法分析,以及如何使用语法分析

如果您希望解决解析问题以解决其他任务,请查看
,它可以为您进行解析,并且从实践的角度来看可能会更有用(尽管理论知识有其优点,不应该被忽略)

如果您的算法的目的只是解析算术表达式,您可以使用C的一些内置功能,例如
ScriptControl()
。请参见此处的示例: