我有几个字符串存储" RNA,DNA"序列。我需要从这些字符串中获取字符并进行比较。
下面你可以看到我的代码的一部分:
QFile file (filePath);
if (!file.open(QIODevice::ReadOnly)){
QMessageBox::information(0,"info",file.errorString());
}
QString line, element;
QStringList list;
int counter;
while(!file.atEnd()){
line = file.readLine();
list = line.split(QRegExp("[\r\n]"),QString::SkipEmptyParts);
for(counter = 0; counter < list.size(); counter++){
element=list.at(counter);
textfile_.append(element);
}
}
现在,我想做的是切片&#34;元素&#34;逐个字符变量,并将这些字符存储到变量,字符串,向量或其他内容中。但我必须稍后联系他们才能比较它们。
简单样本:
- element1:&#34; actrcddeactsfgcstrsac&#34;
- element2:&#34; actcctdfascrtasc&#34;
- element3:&#34; sdfccwertwerwewerdf&#34;
- element4:&#34; werwercdwttewrweddfer&#34;
让我们说element1我需要的是这样的东西:
- 炭[0] [0] = A
- 炭[0] [1] = C
的char [0] [2] = T
...
答案 0 :(得分:1)
有几种方法可以做到这一点。以下是其中一些:
方法1 - 使用字符串列表
QString element1("actrcddeactsfgcstrsac");
QList<QString> matrix;
matrix.push_back(element1);
char c = matrix[0][0].toAscii(); // returns 'a'
方法2 - 使用二维数组。我会用std :: vector来存储字符:
QString element1("actrcddeactsfgcstrsac");
// Init the 100x100 matrix
std::vector<std::vector<char> > matrix( 100, std::vector<char>(100, 0));
// Init the first row.
for (int i = 0; i < s.size(); i++) {
matrix[0][i] = element1.at(i).toAscii();
}
char c = matrix[0][0]; // returns 'a'