Qt::获取两个字符串的前缀和后缀的相同部分

    技术2022-07-11  89

    //获取两个字符串的开头的相同部分 QString BitTableView::get_same_str_start(QString & str1,QString & str2) { int size = std::min(str1.size(),str2.size()); QByteArray ba = str1.toLatin1(); const char *p1 = ba.data(); QByteArray ba2 = str2.toLatin1(); const char *p2 = ba2.data(); int jishu = 0; for(int i = 0;i < size;++i) { if(*p1 != *p2) { break; } ++p1; ++p2; ++jishu; } if(jishu == 0) return ""; else return str1.left(jishu); }

     

    //获取两个字符串的结尾的相同部分 QString BitTableView::get_same_str_end(QString & str1,QString & str2) { int size = std::min(str1.size(),str2.size()); QByteArray ba = str1.toLatin1(); const char *p1 = ba.data(); int len = strlen(p1) - 1; p1 = p1 + len; QByteArray ba2 = str2.toLatin1(); const char *p2 = ba2.data(); len = strlen(p2) - 1; p2 = p2 + len; int jishu = 0; for(int i = 0;i < size;++i) { if(*p1 != *p2) { break; } --p1; --p2; ++jishu; } if(jishu == 0) return ""; else return str1.right(jishu); }

     

    Processed: 0.009, SQL: 9