我有这段代码:
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'。
答案 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?位)比较和填充。