如何计算字符串中的字符数(如果不是所有空格都被计算)

时间:2018-05-22 21:14:59

标签: c string char malloc

我有这段代码:

char* input = malloc(sizeof(char)*100);
scanf("%s", input);        //let's say that the number of chars in "%s" is 5

如何计算我输入的字符数(5)?我尝试使用sizeof(),但找不到解决方案。

编辑(更好的解释):输入变量最多可以容纳100个字符,但是假设我在终端'abcde'中键入:然后它只容纳5个字符,其他95个字符不被占用。我想计算'5'。

1 个答案:

答案 0 :(得分:0)

你必须找到空终止符。

#include <string>

typedef std::basic_string<_TCHAR> tstring;

...

tstring GetDirectoryFromPath(const tstring &path)
{
    tstring::size_type pos = path.find_last_of(_T('\\'));
    if (pos == tstring::npos)
        return tstring();
    return path.substr(0, pos+1);
}

但是,是的,strlen()做得更好,因为它有一些改进/优化的搜索,因为它使用单词(16/32/64?位)比较和填充。