C++ 比较CStringArray元素?
在此代码中,C++ 比较CStringArray元素?,c++,mfc,C++,Mfc,在此代码中,keepSelectedFiles包含5个文本文件。和keepFiles包含keepSelectedFiles中的3个文本文件。我只想比较这两个数组,然后从keepSelectedFiiles中删除3个keepFiles。然后,中只剩下2个文件保留选定的文件。此代码不起作用 for (int i = 0; i < keepSelectedFiles.GetSize(); i++) { testbox4.AddString(keepSelectedFiles[i]);
keepSelectedFiles
包含5个文本文件。和keepFiles
包含keepSelectedFiles
中的3个文本文件。我只想比较这两个数组,然后从keepSelectedFiiles
中删除3个keepFiles
。然后,中只剩下2个文件保留选定的文件
。此代码不起作用
for (int i = 0; i < keepSelectedFiles.GetSize(); i++)
{
testbox4.AddString(keepSelectedFiles[i]);
CString s1 = keepSelectedFiles[i];
CString s2 = keepFiles[i];
for (int i = 0; i < keepFiles.GetSize(); i++)
{
if (s1.Compare(s2) != 0)
{
junkFiles.Add(keepSelectedFiles[i]);
}
}
}
for(int i=0;i
有人知道如何解决这个问题吗
CString s2 = keepFiles[i];
移动上面的一行,将这一行放入内部for循环。您可以尝试此代码
for (int i = 0; i < keepSelectedFiles.GetSize(); i++)
{
bool flag = false;
CString s1 = keepSelectedFiles[i];
for (int j = 0; j < keepFiles.GetSize(); j++)// you can use different variable name
{ //so there will be no confusion
CString s2 = keepFiles[j];
if (s1.Compare(s2) == 0) // if s1 equal to s2
{
flag = true;
break;
}
}
if(!flag){
junkFiles.Add(keepSelectedFiles[i]); // or you can pass s1 here
keepSelectedFile.RemoveAt(i); // remove index value
i--;
}
else // first empty textbox4 before this loop
testbox4.AddString(keepSelectedFiles[i]); // update textbox value
}
for(int i=0;i
循环不需要2个:
for (int i = 0, j=0; i < keepSelectedFiles.GetSize(); i++)
{
CString s1 = keepSelectedFiles[i];
CString s2 = keepFiles[j];
if (s1.Compare(s2) != 0)
{
junkFiles.Add(keepSelectedFiles[i]);
}
else
{
++j;
testbox4.AddString(keepSelectedFiles[i]);
}
}
for(int i=0,j=0;i
如果s1
和s2
不相等,那么您必须将其添加到junkfiles
数组中??因此,请更正此代码。您现在已经发布了有关此主题的多个变体,其中大多数都非常基本。我建议你学习编程书或在线课程。要求堆栈溢出用户为您编写和调试代码并不能提高您的编码技能。GazTheDestroyer如果您认为这是您不解决此问题的基本原因。也许你是高年级学生,但在编程方面,没有什么是基本的,也没有什么是进步的。当它变成现实时,两者都是一样的。@Alexerry如果您将容器改为std::vector
,而不是CStringArray,那么解决方案是一个2行循环。在这个时代,几乎没有理由使用MFC容器类,如CStringArray。代码仍然不工作。包含所有文件的文件。尝试在compare语句之前打印这两个值,您将了解这两个值的比较情况。代码仍然不工作。包含所有文件的文件。调试断言失败?