QStringList保存的是已有的名称列表,QString sNewName为要加入的名称,逐个检查已有名称列表,无重复直接加入,有重复则加(数字),如(1),给出代码实现
时间: 2024-10-08 10:08:30 浏览: 16
在Qt中,你可以使用`QStringList`来存储字符串数组,并通过循环遍历来检查新名称是否已经存在。如果存在,就在新名称后面添加数字标记。以下是简单的代码示例:
```cpp
#include <QCoreApplication>
#include <QStringList>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 初始化现有名称列表
QStringList nameList = {"名字1", "名字2", "名字3"};
// 新名称
QString sNewName = "名字2";
// 遍历列表,检查并处理重复
int count = 1;
for (QString& existingName : nameList) {
if (existingName == sNewName) {
qDebug() << "名称" << sNewName << "已存在,添加编号(" << count++ << ")";
sNewName += "(" + QByteArray::number(count).toStdString().c_str(); // 转换为字符串并附加到名字上
} else {
// 如果不存在,直接添加
qDebug() << "添加名称" << sNewName;
break; // 只需检查第一个就足够了,因为重复的不会再出现
}
}
return a.exec();
}
```
在这个例子中,我们首先创建了一个包含一些名称的`QStringList`。然后,当我们尝试添加`sNewName`时,如果发现它已经在列表里,我们就给它加上一个递增的计数器作为标识。如果不在,我们就直接添加。
注意,`count++`和`QByteArray::number(count)`用于将整数值转换为字符串,以便能安全地连接到名字后面。
阅读全文