Страницы

Поиск по вопросам

четверг, 19 декабря 2019 г.

Преобразование char[] в string

#cpp


Есть массив char[]. Нужно преобразовать его в string.
Как это можно сделать наиболее просто? 
    


Ответы

Ответ 1



Почитайте эту статью: "Строки как нуль-терминированные массивы char.". Вот краткая выдержка: Один из способов организовать работу со строками - это использование одномерных массивов типа char. Тогда строка символов – это одномерный массив типа char, заканчивающийся нулевым байтом. Нулевой байт – это байт, каждый бит которого равен нулю, при этом для нулевого байта определена символьная константа \0 (признак окончания строки, или нуль-терминатор). По нулевому байту функции, работающие со строками, определяют место окончания строки. Если они читают строку, то воспринимают ее только до первого нуль-терминатора; если они создают строку, то записывают нуль-терминатор в ее конец. Еще полезно будет почитать ответ на этот вопрос: How to convert a char array to a string? Вот решение: char arr[ ] = "Простая проверка"; string str = string(arr); cout << str; // "Простая проверка" Вот пример на Ideone

Ответ 2



Если массив содержит си строку, заканчивающуюся '\0', то просто присваиванием char s[] = "test"; std::string str = s; // или явно как параметр конструктора std::string str2(s); Если не завершается '\0', то надо явно указать размер char s[] = {'t', 'e', 's', 't'}; std::string str(s, sizeof(s));

Ответ 3



Ну простым присваиванием же...

Комментариев нет:

Отправить комментарий