print all substrings in c++

#include <iostream>
#include <string>
using namespace std;

void printSubstrings(string str) {
    int n = str.length();
    for (int len = 1; len <= n; len++) {
        for (int i = 0; i <= n - len; i++) {
            int j = i + len - 1;
            for (int k = i; k <= j; k++) {
                cout << str[k];
            }
            cout << endl;
        }
    }
}

int main() {
    string s = "hello";
    printSubstrings(s);
    return 0;
}