2014-11-17 2 views
-2

m Работа над некоторой домашней работой, но даже не знаю, с чего начать. Если бы вы могли, вы могли бы бросить меня в правильном направлении. Это то, что я должен делатьПреобразование строки в строку c

Напишите свою собственную версию функции str_c, которая принимает строку C++ в качестве аргумента (с параметром, установленным как константную ссылочную переменную) и возвращает указатель на эквивалентную C-строку , Обязательно проверьте его с помощью соответствующего драйвера.

+1

['return s.c_str();'] (http://en.cppreference.com/w/cpp/string/basic_string/c_str) – WhozCraig

+0

Я думаю, задача состоит в том, чтобы написать такую метод без использования метода 'c_str()'. Правильно? См. Мой ответ для некоторых советов. Надеюсь, они вам помогут, не решая задачи ;-) – TobiasMende

+0

@TobiasMende точно правильно! – dcneo

ответ

0

Существуют различные возможности для написания такой функции.

Прежде всего, взгляните на C++ reference for std::string, что является отправной точкой для вашей проблемы.

В разделе Итератора на этой странице вы можете найти некоторые методы, которые помогут вам получить строковый символ по символу.

Он также может помочь прочитать документацию для метода std::string::c_str, которую вы хотите подражать: string::c_string. Важно понять, как система работает с обычными C-строками (char*):

В связи с тем, что C-строка теперь имеет length - или size атрибута по, трюк используется для определения конца строка: последний символ в строке должен быть «\0».

Убедитесь, что вы понимаете, что строка char* также может рассматриваться как массив символов (char []). Это может помочь вам при понимании и решении вашей проблемы.

0

как известно, C-строка - это массив символов с нулевым символом. вы можете поместить char по char из std :: string в массив char, а затем закрыть с помощью '\ 0'. и помните, что указатель на char (char *) также является представлением массива char. вы можете использовать эту концепцию

Смежные вопросы