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
.