1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <string> #include <stdio.h> #include <string.h> #include <cassert> inline void CopyAndNullTerminate( const std::string& source, char* dest, size_t dest_size ) { source.copy( dest, dest_size ); using std::min; char* end = dest + min( static_cast< size_t >( dest_size - 1 ), source.size() ); *end = '\0'; } int main() { enum{ MAX_STRING_SIZE = 15 }; char dest[ MAX_STRING_SIZE ]; std::string test = "This is a test"; CopyAndNullTerminate( test, dest, MAX_STRING_SIZE ); assert( strcmp( test.c_str(), dest ) == 0 ); return 0; } |
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGNhc3NlcnQ+CgppbmxpbmUgdm9pZCBDb3B5QW5kTnVsbFRlcm1pbmF0ZSggY29uc3Qgc3RkOjpzdHJpbmcmIHNvdXJjZSwgY2hhciogZGVzdCwgc2l6ZV90IGRlc3Rfc2l6ZSApCnsKICAgIHNvdXJjZS5jb3B5KCBkZXN0LCBkZXN0X3NpemUgKTsKICAgIHVzaW5nIHN0ZDo6bWluOwogICAgY2hhciogZW5kID0gZGVzdCArIG1pbiggc3RhdGljX2Nhc3Q8IHNpemVfdCA+KCBkZXN0X3NpemUgLSAxICksIHNvdXJjZS5zaXplKCkgKTsKICAgICplbmQgPSAnXDAnOwp9CgppbnQgbWFpbigpCnsKICAgIGVudW17IE1BWF9TVFJJTkdfU0laRSA9IDE1IH07CiAgICBjaGFyIGRlc3RbIE1BWF9TVFJJTkdfU0laRSBdOwogICAgc3RkOjpzdHJpbmcgdGVzdCA9ICJUaGlzIGlzIGEgdGVzdCI7CgogICAgQ29weUFuZE51bGxUZXJtaW5hdGUoIHRlc3QsIGRlc3QsIE1BWF9TVFJJTkdfU0laRSApOwoKICAgIGFzc2VydCggc3RyY21wKCB0ZXN0LmNfc3RyKCksIGRlc3QgKSA9PSAwICk7CiAgICByZXR1cm4gMDsKfQ==
-
upload with new input
-
result: Success time: 0.01s memory: 2808 kB returned value: 0


