string c_str () vs data ()

J'ai lu plusieurs endroits où la différence entre c_str()et data()(dans STL et d'autres implémentations) est qu'il c_str()est toujours terminé par zéro alors que data()ne l'est pas. Pour autant que je l'ai vu dans les implémentations réelles, ils font la même chose ou data()appellent c_str()....