从 CString C++ 中删除特定行
Posted
技术标签:
【中文标题】从 CString C++ 中删除特定行【英文标题】:Remove Specific Line From CString C++ 【发布时间】:2014-03-20 09:25:38 【问题描述】:如何从CString
中删除特定行?此行包含:“要删除的行”。
例如输入为:
Remove Specific'\n'
Line to remove'\n'
Line From '\n'
CString C++.
输出应该是:
Remove Specific'\n'
Line From '\n'
CString C++.
【问题讨论】:
提供一些带有示例的代码以及您尝试过的内容 【参考方案1】:尝试 CString.Replace 方法找到“要删除的行”并替换为 NULL。
查看MSDN
【讨论】:
你真的不想将NULL
传递给Replace
。
是的,但是输入字符串在单个字符串对象中存储了多行。在最初的问题中以“要删除的行”为例,因此在我的评论中提到了它。
是的,我编辑了我的评论; OP 不是很清楚他真正想要什么 :) 但你仍然不应该传递 NULL。【参考方案2】:
您需要将内容逐行复制到除要删除的行之外的其他新字符串,然后再次将新字符串复制到旧字符串中。
【讨论】:
【参考方案3】:感谢每一位, 这样做的方法就像 Heena Goyal 说的那样
CString oldString = _T("Remove Specific'\n' Line to remove'\n' Line From '\n' CString C++.");
CString auxString ;
CString newString =_T("");
for (int i = 0; i < oldString.GetLength(); i++)
if (oldString[i] == '\n' || i == oldString.GetLength()-1)
if( i == oldString.GetLength() - 1)
auxString += oldString[i];
if(auxString.Find("Line to remove") == -1)
newString += auxString +'\n';
auxString = _T("");
else
if (oldString[i] != '\r')
auxString += oldString[i];
newString = newString.Left(newString.GetLength() -1);
【讨论】:
以上是关于从 CString C++ 中删除特定行的主要内容,如果未能解决你的问题,请参考以下文章