Menambah Integer pada Rentetan dalam C
Kaedah std::string::append() dalam C digunakan untuk menambah urutan aksara atau rentetan kepada rentetan sedia ada. Walau bagaimanapun, adalah penting untuk memahami kelakuannya untuk mengelakkan ralat.
Pertimbangkan coretan kod berikut:
std::string query; int ClientID = 666; query = "select logged from login where id = "; query.append((char *)ClientID);
Kod ini cuba menambahkan integer ClientID pada rentetan pertanyaan. Walau bagaimanapun, ia menimbulkan Kegagalan Penegasan Nyahpepijat. Sebabnya ialah std::string::append() menjangkakan argumen char* yang menunjuk kepada rentetan yang ditamatkan nol.
Penyelesaian:
Untuk menambah dengan betul integer kepada rentetan, beberapa pendekatan tersedia:
#include <sstream> std::ostringstream s; s << "select logged from login where id = " << ClientID; std::string query(s.str());
std::string query("select logged from login where id = " + std::to_string(ClientID));
#include <boost/lexical_cast.hpp> std::string query("select logged from login where id = " + boost::lexical_cast<std::string>(ClientID));
Kaedah ini memastikan bahawa integer ditukar dengan betul kepada rentetan sebelum menambahkannya pada rentetan pertanyaan, mengelakkan Kegagalan Penegasan Nyahpepijat.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Integer dengan betul pada String dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!