簡體   English   中英

QT - 如何從 QString 獲取字符?

[英]QT - How can I get characters from QString?

我有幾個字符串存儲“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);
    }
}

現在,我想要做的是,逐個字符地對“元素”變量進行切片,並將這些字符存儲到變量、字符串、向量或其他任何內容中。 但是我必須稍后聯系他們才能比較它們。

簡單示例:

  • 元素1:“actrcddeactsfgcstrsac”
  • 元素2:“actcctdfascrtasc”
  • element3: "sdfccwertwerwewerdf"
  • element4: "werwercdwttewrweddfer"

讓我們說 element1 我需要的是這樣的:

  • 字符[0][0]=a
  • 字符[0][1]=c
  • 字符[0][2]=t

  • ...

有幾種方法可以做到這一點。 以下是其中一些:

方法 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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM