? В с# возвращается массив байтов строки в кодировке ASCII
.c_str() если имеется ввиду std::string
По семантике тогда уж data больше подходит. Результат c_str обычно трактуется по смыслу как строчка, а вот data - как данные, которые там под капотом лежат В сущности одно и то же, но лично я привык различать эти два метода
Смотря какой контекст, опять же. Для сишных вызовов, где требуются строки, я обычно юзаю этот метод Все таки там гарантируется nullterm
А так не про сишную строку спрашивали, а про массив байт data как-то лучше подходит И да, data неконстантный с С++17
Для data, неожиданно, тоже.
Для data нет гарантии
В с++ строки и байты это одно и то же.
Там ещё с юникодом траблы, но он пока этого не понимает
Это пока строка не Юникод...
Пруфы будут?
https://en.cppreference.com/w/cpp/string/basic_string/data The returned array is null-terminated, that is, data() and c_str() perform the same function. If empty() returns true, the pointer points to a single null character. (since C++11)
https://www.cplusplus.com/reference/string/string/data/
Дал ссылочку выше, ознакомьтесь и не приводите всякий хлам в качестве источников. С++98/03 в 2022 считаем неактуальным
Сейчас он для всего гарантируется
This array includes the same sequence of characters that make up the value of the string object plus an additional terminating null-character ('\0') at the end.
Обсуждают сегодня