如何将两个 QString 合二为一?
How can I combine two QStrings into one?
我尝试将两个 QString 合二为一。我读了很多关于:
QString NAME = QString + QString
但这对我没有帮助。这就是我的代码到目前为止的样子:
test.h
#ifndef TEST_H
#define TEST_H
#include <QString>
#include <QFile>
#include <QDir>
class Test
{
public:
void createProject(QString* p, QString*n);
};
#endif // TEST_H
test.cpp
#include "test.h"
#include <QFile>
#include <QString>
#include <QDir>
void Test::createProject(QString *p, QString *n)
{
QString result = p + n;
QDir dir(result);
if (dir.exists())
{
// ok
}
else
{
printf("Error!\n");
}
}
(忽略检查目录是否存在的代码,顺便说一句,我使用 Qt 4.8.6)
所以现在当我尝试编译时,我得到了这个错误:
test.cpp: In member function 'void Test::createProject(QString*,
QString*)': test.cpp:8:21: error: invalid operands of types 'QString*'
and 'QString*' to binary 'operator+'
QString result = p + n;
我怎样才能完成这项工作?同样使用 += 而不是 + 在这里不起作用。
~一月
确实,您正在添加它们的地址,因为 p
和 n
是指针。尝试将它们的值添加为:
QString result = *p + *n;
我尝试将两个 QString 合二为一。我读了很多关于:
QString NAME = QString + QString
但这对我没有帮助。这就是我的代码到目前为止的样子:
test.h
#ifndef TEST_H
#define TEST_H
#include <QString>
#include <QFile>
#include <QDir>
class Test
{
public:
void createProject(QString* p, QString*n);
};
#endif // TEST_H
test.cpp
#include "test.h"
#include <QFile>
#include <QString>
#include <QDir>
void Test::createProject(QString *p, QString *n)
{
QString result = p + n;
QDir dir(result);
if (dir.exists())
{
// ok
}
else
{
printf("Error!\n");
}
}
(忽略检查目录是否存在的代码,顺便说一句,我使用 Qt 4.8.6)
所以现在当我尝试编译时,我得到了这个错误:
test.cpp: In member function 'void Test::createProject(QString*, QString*)': test.cpp:8:21: error: invalid operands of types 'QString*' and 'QString*' to binary 'operator+'
QString result = p + n;
我怎样才能完成这项工作?同样使用 += 而不是 + 在这里不起作用。
~一月
确实,您正在添加它们的地址,因为 p
和 n
是指针。尝试将它们的值添加为:
QString result = *p + *n;