我想兩個字符串在C++比較:慣用方式在C++中匹配一個正則表達式
- 有一個函數
getName()
返回一個字符串。 - 現在我可以寫
Out << getName();
這將打印字符串。 - 但是我想打印字符串只有如果它的值是
arpit
或arpit*N*
其中ñ是一個整數。我不要想要打印它,如果它的值是arpita
,arpitx
,其中否是一個整數或空字符串以外的東西。
我知道這可以很容易地完成,但我想用最少的行數來做到這一點。
我做了什麼至今:
char name1[] = getName();
char name2[] = "arpit";
for (int x = 0; x <= 4; x++){
if (name1[x] == name2[x]) continue;
else return (Out << "not equal") ;
}
while(name1[x] ! = "\0"){
if(isdigit(name1[x])
x++;
else return (Out << "not equal") ;
}
Out << getName();
更新1 getName()
返回一個字符串,直到它遇到的空白,而且將不返回任何行或2個或更多的話。
嗯。你有什麼嘗試?顯示一些努力,*可愛請*。只是要求這樣的解決方案不是SO的目的。 –
'std :: string s = getName();如果(s.size()> = 5 && s.substring(0,5)==「arpit」)Out << s;' – john
boost :: starts_with(getName(),「arpit」)''怎麼辦? – Mithrandir