すみません。
Cのスレからやってきました。
suffixarrayのC++Verなのだそうですが
C++が少ししか分かりません。
どなたかCに書き換えていただけませんでしょうか

vector<int> make_suffixarray(const string& str) {
 vector< pair<string, int> > v;
 for (int i = 0; i < str.size(); ++i)
  v.push_back(pair<string, int>(str.substr(i), i));
 sort(v.begin(), v.end()); // sort by first elements

 vector<int> suffixarray;
 for (int i = 0; i < v.size(); ++i)
  suffixarray.push_back(v[i].second);
 return suffixarray;
}