我有一个2 RNA链:1个G-enyzme和1个UC-Enyzme,如果你看到G酶中的G,则用斜线将其分解,如果你看到uc-enyzme的u或c,反之亦然意味着你可以使用u或c作为G-enyzme之后和g作为uc-enyzmes我查找了几个代码,打破了像substr这样只能从1个位置到结束的子串。有没有其他方法可以做到这一点?
实施例: G-enyzme" AUCG,AUG,G,CU ...."
输出:= AUC / G,AU / G,G,CU
如果没有G使其字符串结束,那么CU是结束链
int main()
{
string G_enyzme = "AUCG,AUG,G,CU,ACUAUACG";
string U_C_enyzme = "GGAC,U,AU,GAU,C,U,AC,GC,AU";
size_t g = G_enyzme.find('G');
if(g != string::npos) //if G position is found
{
//put a slash between AUC and G , AU and G, .... , ACUAUAC and G
//if the substring does not have G make it begin / end
}
}
答案 0 :(得分:0)
您的问题需要进一步澄清。我将介绍第一个案例,并将其余部分留给您,因为
"和u或c如果你是u.c-enyzme,反之亦然"
我不清楚。
#include <iostream>
#include <string>
std::string getStr(const std::string& str, const char& flag)
{
std::string temp;
// G-enyzme
if ( flag == 'G' ){
for ( int i(0); i < str.size(); ++i ){
temp += str[i];
if ( str[i] == 'G' ){
temp.pop_back();
temp += "/G";
}
}
}
// U.C-Enyzme
if ( flag == 'U' ){
//TODO
}
return temp;
}
int main()
{
std::string str ("AUCG, AUG, G, CU, ACUAUACG");
std::cout << str << std::endl;
std::cout << getStr(str,'G') << std::endl;
return 0;
}
,输出
AUCG, AUG, G, CU, ACUAUACG
AUC/G, AU/G, /G, CU, ACUAUAC/G