【发布时间】:2013-11-15 10:21:45
【问题描述】:
我想在 C++ 中比较两个字符串:
- 有一个函数
getName()返回一个字符串。 - 现在我可以写
Out << getName();这将打印字符串。 - 但是,如果字符串的值为
arpit或arpit*N*,其中N 是整数,我想打印字符串only。如果它的值为arpita、arpitx,我不想打印它,其中 N 不是整数或空字符串。
我知道这很容易做到,但我想用最少的行数做到这一点。
到目前为止我所做的是:
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(); if (s.size() >= 5 && s.substring(0,5) == "arpit") Out << s; -
boost::starts_with(getName(), "arpit")呢? -
使用“comaparison”解决问题标题过滤器的形式不佳。
-
@razlebe 他已经取消了更新 2。对于一个不断变化的问题,很难说什么。