gpt4 book ai didi

c++ - 在最后一次出现字符 C++ 时删除 char 数组的开头

转载 作者:太空宇宙 更新时间:2023-11-04 16:10:50 25 4
gpt4 key购买 nike

我正在寻找删除字符串开头直到字符最后一次出现的最佳方法。例如。我有一个包含以下内容的字符数组:

[Microsoft][ODBC SQL Server Driver][SQL Server]Option 'enable_debug_reports' requires a value of 0 or 1.

基本上,我正在寻找最后一次出现的“]”。我希望我的 char 数组被修剪为:

Option 'enable_debug_reports' requires a value of 0 or 1.

我找到了几种方法来处理字符串数据类型。我想知道是否有一种有效的方法来操作 char 数组。我的程序要求几个参数是 char[] 而不是字符串。在我的情况下,我将如何使用类似 strcpy 的东西?

最佳答案

如果您的字符串确实包含“]”字符,则以下应该有效:

std::string trimIt(originalCStr);
std::string trimmed(trimIt.substr(trimIt.find_last_of("]")));
strcpy(originalCStr, trimmed.c_str());

对于纯 C 方法:

char *toPtr = originalCStr;
char *fromPtr = strchr(toPtr, ']');
++fromPtr;
while (*fromPtr != '\0') {
*toPtr = *fromPtr;
++fromPtr;
++toPtr;
}
*toPtr = '\0';

关于c++ - 在最后一次出现字符 C++ 时删除 char 数组的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28881607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com