string型にc_strメンバ関数を適用するとcharのconst char 配列のアドレスが得られる
#include <string>
#include <iostream>
using namespace std;
int ccount(const char* a){
  int r = 0;
  while(*a){
    ++r;
    ++a;
  }
  return r;
}
int main(){
  string  test_str = "test";
  int count = ccount(test_str.c_str());
  cout << count << endl;
}
whlile(*a)と書くところはわかるんだけど、引数にconst charでないとだめな理由がわからん。const charとcharって違う型なのか?単にconstっていうキーワードがついてるだけなんだと思ってた。
あと、typedefの使い方もなんとなくわかった。mapとか省略したくなる。
                    
ロベールのC++入門講座