10

私は少し基本的な読み取りを行い、収集したものから .c_str() には常にnullターミネーターがあります。

私はかなり単純な C++ プログラムを持っています:

int main(int argc, char** argv)
{
  std::string from = "hello";
  char to[20];
  memcpy(to, from.c_str(), strlen(from.c_str())+1);
  std::cout<< to << std::endl;
  return 0;
}

その memcpy は、null で終わる文字列を変数にコピーすることを保証しますか (文字列の長さが短い場合)?

4

4 に答える 4

7

std::string文字列をコピーするために使用する必要があります。ただし、そのようにしたい場合は、strcpy代わりに使用する必要がありますmemcpy

int main(int argc, char** argv)
{
  std::string from = "hello";
  char to[20];
  strcpy(to, from.c_str());
  std::cout<< to << std::endl;
  return 0;
}
于 2013-07-11T07:39:11.827 に答える