How to count a particular character in QString Qt
c++, qstring, qt, qt5
Solution
You could use this method and pass the `#` character:
#include <QString>
#include <QDebug>
int main()
{
// Replace the QStringLiteral macro with QLatin1String if you are using Qt 4.
QString myString = QStringLiteral("#### some random text ### other info\n \
a line break ## something else");
qDebug() << myString.count(QLatin1Char('#'));
return 0;
}
Then with gcc for instance, you can the following command or something similar to see the result.
g++ -I/usr/include/qt -I/usr/include/qt/QtCore -lQt5Core -fPIC main109.cpp && ./a.out
Output will be: `9`
As you can see, there is no need for iterating through yourself as the Qt convenience method already does that for you using the internal `qt_string_count`.
Problem
Imagine I have a QString containing this: ``` "#### some random text ### other info a line break ## something else" ``` How would I find out how many hashes are in my QString? In other words how can I get the number 9 out of this string? answer Thanks to the answers, Solution was quite simple, overlooked that in the documentation using the count() method, you can pass as argument what you're counting.