English 中文(简体)
• 如何确定LPCSTR的长度
原标题:How to find the length of an LPCSTR
  • 时间:2009-10-13 18:15:02
  •  标签:

我试图将LPCSTR转换成使用atoi(a)的惯犯,并核实转换过程是否成功,我想计算一下它所生产的立体中的数和最初的LPCSTR(它不应只包含ger)

我很难找到一个很好的方法来计算太平洋共同体秘书处的规模。 迄今为止,唯一办法似乎是在我收到0票之前就算出。

任何关于改进方法的建议?

增 编

最佳回答

难道这还不是len?

问题回答

为找到<的编号(此处为数字)的长度,请使用<代码>lstrlen(,而不是strlen(<>/code>)。 资料来源:http://msdn.microsoft.com/en-us/library/windows/desktop/ms6492%28v=vs.85%29.aspx“rel=” 页: 1

您可使用>strtol,并使用endptr返回,以核对在座标(0 byte)的末尾。

计算不一定准确。 “00”将产生0,但0有1位数,原体长度为2。

strlen(功能是你重新研究的内容。

样本使用:

size_t len = strlen( szNumber );

Nope。

这说明你是如何找到长篇的。 您可使用<代码>strlen,但仍须在> 之前缩小整个方位数并计算其特性。

关于生产热量大于光的会谈...... 停止使用玩具,这将解决你的大部分问题。 atoi是无实际价值的致命功能。 将代表人数转为代表的适当方式是从斯特鲁到......集团(斯特鲁托勒、斯特鲁托勒等)的职能。 这些职能将退还给你足够的信息,以确定是否发生了换算错误。

LPCSTR lpText = "test";
long lTextLen = CString(lpText).GetLength();

我只字不提——用投入开始一个阵列,读一个星体,然后检查该溪流是否空:

#include <sstream>
#include <iostream>

typedef char const *LPCSTR;

template <class T>
bool check_read(LPCSTR input, T &val) { 
    std::istringstream reader(input);

    reader >> val;
    char ch;
    if (reader >> ch) {
        std::cerr << "
Unconverted character: " << ch << std::endl;
        return false;
    }
    return true;
}

int main() { 
    LPCSTR inputs[] = {"12345", "54321a"};
    int a;

    for (int i=0; i<2; i++) {
        check_read(inputs[i], a);
        std::cout << "Converted: " << a << std::endl;
    }
    return 0;
}

另一种合理的可能性是图形或表象。 这些人回到了第一个无争议的特性(如果有的话),因此他们非常直接地告诉你什么是和什么是被转换的。 它们比溪流更快捷,但总体上不太灵活——例如,如果你想要读一个浮点号码,上述检查——将按需要进行,但需要改写一些使用斜体的检查。

还有一种可能性是,你可能会考虑布斯塔法-播种(包裹很少,但大致上与上述法典相似)。

由于<代码>LPCSTR只是const char*(在de-macroing之后),strlen将予罚款。

但是,如果你在窗口职能明确定义后与<代码>LPCSTR输入相匹配,那么你可使用<代码>lstrlenA。 我严重怀疑存在任何实际的分歧,称之为“<条码>>。





相关问题
热门标签