首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++在字符数组中查找前一个字符之后的字符

C++在字符数组中查找前一个字符之后的字符
EN

Stack Overflow用户
提问于 2014-05-07 02:03:53
回答 2查看 85关注 0票数 0

我正在做一个在两个多项式之间进行运算的项目。多项式从我命名为"functions.txt“的文本文件中读取,其形式为"(2*x^2+5*x^4-3*x)+(6*x+2*x^3+x^5)”。这些方程的数量未知,操作可以是“-”、“+”或“”。我已设法读取文件,并将每个字符存储到字符数组中。此时,我很难找到数学运算符(“”、“-”或“+”)。我想,在字符串中找到')‘,并将它后面的字符立即保存到mathOperator中;如果')’后面的字符不是'\0‘。然而,这似乎不起作用,因为它返回“”。如有任何建议和帮助,将不胜感激。以下是问题所在:

代码语言:javascript
运行
复制
if(polyFile.good())
{
    while(!polyFile.eof() && counter < MAX_SIZE)
    {
        polyFile.get(polyArray[counter]);
        ++counter;
    }

    polyArray[counter - 1] = '\0';

    for(int i = 0; i < polyFile.eof(); ++i)
    {
        if(polyArray[i] = ')')
        {
            polyArray[i + 1] = mathOperator;
            cout << mathOperator;
        }
    }

}
else
{
    cout << "The file could not be opened." << endl;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-07 02:15:49

这个街区有一些问题

代码语言:javascript
运行
复制
for(int i = 0; i < polyFile.eof(); ++i)
{
    if(polyArray[i] = ')')
    {
        polyArray[i + 1] = mathOperator;
        cout << mathOperator;
    }
}

1/在for循环中,您希望使用i<计数器而不是polyFile.eof()

在if语句中,您可能希望使用if(!strcmp(polyArrayi,“)”);"=“是赋值操作符,而不是比较运算符。

[3]这一行:

代码语言:javascript
运行
复制
polyArray[i + 1] = mathOperator;

这意味着您将mathOperator分配给polyArrayi+1,而不是将polyArrayi+1中的任何内容存储到mathOperator中。这是你想要的:

代码语言:javascript
运行
复制
mathOperator = polyArray[i + 1];
票数 1
EN

Stack Overflow用户

发布于 2014-05-07 02:06:37

这条线

代码语言:javascript
运行
复制
for(int i = 0; i < polyFile.eof(); ++i)

应该使用counter来遍历数组

代码语言:javascript
运行
复制
for(int i = 0; i < counter - 1; ++i)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23507491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档