strrchr返回nullptr而不是c 中的null
does strrchr return nullptr instead of NULL in C++?
我正在将程序从C到C 移植,包括此代码:
char* get_file_extension(const char* file_name)
{
char* e = strrchr((char*) file_name, '.');
if (e == NULL)
{
char* buf = strdup(file_name);
return buf;
}
return e + 1;
}
假设我只将编译器更改为C 11,那么在这种情况下,仅将 null 更改为 null nullptr 在这种情况下是否足够?当前STRRCHR来自包含的标题 String.h ,因此恐怕如果strrchr返回 null 而不是 nullptr and,则strong> nullptr (检查失败。
或我应该更改 String.h cstring ?
strrchr
返回 NULL
是不准确的语句。NULL
是一个宏,可扩展为空指针常数。空指针常数隐式转换为任何指针类型的空指针。strrchr
返回的是一个空指针常数,该常数转换为 char*
null指针。
nullptr
也是一个无效的指针常数,具有一些特殊的属性。但是他们中的大多数对我们来说并不重要。当您将其与任何类型的空指针进行比较时,如果指针为零指针,则比较将产生true。
事实上,即使是nullptr == NULL
也很好,也会给您带来理智的结果。
相关文章:
- 在将迭代器与C 中的null进行比较时,编译误差
- strrchr返回nullptr而不是c 中的null
- 将结构元素地址设置为C 中的null(单链接列表)
- C++中的NULL指针
- QML和C++中的Null和Undefined
- WCHAR_T设置为c 中的null
- 将对象的数组设置为c 中的null
- 用户定义类中的Null指针无效
- 从SQL Server返回C++本机客户端中的NULL数据类型
- 字符串中的Null终止
- 对象向量中的空对象与指针向量中的NULL/nullptr
- 双数组 C++ 中的 NULL(带有示例)
- ConstexPR 用于派生类中的 null 初始化构造函数
- Opencv:cvGetMat中的Null指针(传递Null数组指针)
- 字符串中的null字符
- 派生函数中的NULL实现
- atoi中的Null将值转换为0
- 与c++中的Null比较
- 使用POCO检查数据库中的NULL值
- 加密数据中的Null字符