c++ - C++中的字符串切片

标签 c++

我试图从字符数组中切出最后四个字符,我尝试了 Python 使用的方法但没有成功;

char *charone = (char*)("I need the last four")
char *chartwo = charone[-4:]

cout << chartwo << endl;

我希望这段代码返回:

four

但是C/C++好像没那么容易...

我在哪里可以找到将一个字符数组的最后四个字符返回到另一个字符数组的简单替代方法?

最佳答案

尝试:

int len = strlen(charone);
char *chartwo = charone + (len < 4 ? 0 : len - 4);

在 C++ 中,您可以将其替换为:

char* chartwo = charone + (std::max)(strlen(charone), 4) - 4;

该代码使用了 C 字符串的一个特殊属性,该属性仅适用于截断字符串的开头。

关于c++ - C++中的字符串切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5048374/

相关文章:

c++ - 将 const wchar_t* 和 cont char* 从 VB 传递到 C++ DLL

c++ - 无法将 libc++ 与 clang++-5.0 一起使用

c++ - 不违反标准的近恒定时间旋转

C++ 在循环中删除列表中的对象

c++ - 奇怪的模板规范

c++ - 数组右值的地址

c++ - 洗牌字符串

c++ - 将 MPI_Bcast 用于

C++ 中的类 Java 注释

c++ - 如何连接一个字符串和一个整数来生成文件名?