mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Add StringRef::count({char,StringRef})
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79354 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f8bc801c6c
commit
5caba3bcb1
@ -172,6 +172,28 @@ namespace llvm {
|
|||||||
return npos;
|
return npos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// count - Return the number of occurrences of \arg C in the string.
|
||||||
|
size_t count(char C) const {
|
||||||
|
size_t Count = 0;
|
||||||
|
for (size_t i = 0, e = Length; i != e; ++i)
|
||||||
|
if (Data[i] == C)
|
||||||
|
return i;
|
||||||
|
return Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// count - Return the number of non-overlapped occurrences of \arg Str in
|
||||||
|
/// the string.
|
||||||
|
size_t count(const StringRef &Str) const {
|
||||||
|
size_t Count = 0;
|
||||||
|
size_t N = Str.size();
|
||||||
|
if (N > Length)
|
||||||
|
return 0;
|
||||||
|
for (size_t i = 0, e = Length - N + 1; i != e; ++i)
|
||||||
|
if (substr(i, N).equals(Str))
|
||||||
|
++Count;
|
||||||
|
return Count;
|
||||||
|
}
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
/// @name Substring Operations
|
/// @name Substring Operations
|
||||||
/// @{
|
/// @{
|
||||||
|
@ -94,6 +94,13 @@ TEST(StringRefTest, Utilities) {
|
|||||||
EXPECT_TRUE(Str.find("hello") == 0);
|
EXPECT_TRUE(Str.find("hello") == 0);
|
||||||
EXPECT_TRUE(Str.find("ello") == 1);
|
EXPECT_TRUE(Str.find("ello") == 1);
|
||||||
EXPECT_TRUE(Str.find("zz") == StringRef::npos);
|
EXPECT_TRUE(Str.find("zz") == StringRef::npos);
|
||||||
|
|
||||||
|
EXPECT_TRUE(Str.count('l') == 2);
|
||||||
|
EXPECT_TRUE(Str.count('z') == 0);
|
||||||
|
EXPECT_TRUE(Str.count("helloworld") == 0);
|
||||||
|
EXPECT_TRUE(Str.count("hello") == 1);
|
||||||
|
EXPECT_TRUE(Str.count("ello") == 1);
|
||||||
|
EXPECT_TRUE(Str.count("zz") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // end anonymous namespace
|
} // end anonymous namespace
|
||||||
|
Loading…
Reference in New Issue
Block a user