【问题标题】:How to count total number in Edit Control - Visual MFC如何计算编辑控件中的总数 - Visual MFC
【发布时间】:2014-04-15 00:58:08
【问题描述】:

我有一个编辑控件(类型:CString)。如何计算此控件中的总数? (例如:99-> 计数:2;000123456789 -> 计数:12)

【问题讨论】:

  • 重复问题,请查看:stackoverflow.com/questions/6601592/…
  • @ChrisInked 我在那个问题中根本看不到任何与 MFC 相关的内容。
  • @ChrisInked: 如果零出现第一个数字 (0000000003 -> count:10) not count:1,Log10 无法解决我的问题
  • 零出现在您的 000123456789 示例中,但您计算了它们。所以不清楚你想要什么。

标签: c++ mfc


【解决方案1】:

如果您想计算 CString 中的 0-9 位数字,您可以简单地使用如下代码:

int CountDigits(const CString& s)
{
    int count = 0;

    // For each character in the string
    for (int i = 0; i < s.GetLength(); i++)
    {
        // If it's a digit (0,1,2,3,...9)
        if (s[i] >= '0' && s[i] <= '9')
        {
            // Increment its count
            count++;
        }
    }

    return count;
}

请注意,要检查CString 中给定的TCHAR 是否为0-9 位,您也可以使用_istdigit()

【讨论】:

    【解决方案2】:

    调用GetWindowTextLength()成员方法返回字符串中的字符数。

    【讨论】:

    • sorry 如果您有误解,我的意思是在 CString 中计算“数字”,而不是计算字符
    • 我很困惑。您的问题最初的措辞是说您有一个编辑控件。您将需要从此编辑控件中获取文本来计算长度。您特别询问如何从控件中获取数据。现在,您似乎在问一个完全不同的问题,这实际上与编辑控件或从中检索数据完全无关。看来您的问题现在与 CString 相关,以及如何将它们解析为数字部分,以便仅确定字符串该部分的字符数。有样本数据吗?
    • 是的,只计算 CString 中的数字。例如:abcdef5a1 ->count:2; 000aaa1 -> 计数:4; 0101aaa0101 -> 计数:8,仅此而已!
    • @DarkLight:我已根据您的此评论提供了答案,但您可能需要编辑您的问题以使其更清晰。例如,由于您有一个 CString,因此编辑控件上的信息是无用的。此外,举一个像你在上面评论中给出的例子有助于阐明你的目标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多