0

文字列変数の chars に char が含まれておらず、とtablolarの間の小文字が含まれている場合、私は自分の仕事をしたいと考えています。何を指示してるんですか?a-z','

string tablolar の場合;

「タブロ」→大丈夫

「タブロ、タブロビル、タブロイキ、タブルック」→大丈夫

「た」→大丈夫

しかし、そうであれば;

「タブロ 2」->OK ではありません

"ta546465"->大丈夫ではありません

「タブロ」→ダメ

"tablo,234,tablobir"->OK ではない

"tablo^%&!)=(,tablouc"-> ダメ

私が試したのはひどいものでした。

    for(int z=0;z<tablolar.size();z++){
    if ((tablolar[z] == ',') || (tablolar[z] >= 'a' && tablolar[z] <= 'z'))
{//do your work here}}
4

3 に答える 3

4

tablolar.find_first_not_of("abcdefghijknmopqrstuvwxyz,")最初の無効な文字の位置、またはstd::string::npos文字列が OK の場合を返します。

于 2013-04-25T09:45:47.983 に答える
0

c 関数islowerは小文字のテストです。したがって、おそらく次の行に沿って何かが必要です。

#include <algorithm>
#include <cctype> // for islower

bool fitsOurNeeds(std::string const& tabular)
{
    return std::all_of(tabular.begin(), tabular.end(),
        [](char ch)
    {
        return islower(ch) || ch == ',';
    });
}
于 2013-04-25T14:54:00.480 に答える
0
bool fitsOurNeeds(const std::string &tablolar) {
    for (int z=0; z < tablolar.size(); z++)
        if (!((tablolar[z] == ',') || (tablolar[z] >= 'a' && tablolar[z] <= 'z')))
            return false;
    return true;
}
于 2013-04-25T09:46:56.213 に答える