Лучший способ создать струну до

Я в настоящее время использую

char *thisvar = "stringcontenthere";

объявить строку в C.

Действительно ли это - лучший способ объявить строку в C?

Как насчет того, чтобы генерировать струну до от C ++-Strings?

7
задан RiggsFolly 30 September 2013 в 12:12
поделиться

4 ответа

В соответствии с другими предложениями, и я хочу "сделать это" способом C ++ , используйте std :: string .

Если вам так или иначе нужна C-строка , std :: string имеет метод, который дает const char * .

Вот пример:

#include <iostream>
#include <string>

void dummyFunction(const char* str)
{
  // Do something
}

int main(int, char**)
{
  std::string str = "hello world!";

  dummyFunction(str.c_str());

  return EXIT_SUCCESS;
}
1
ответ дан 6 December 2019 в 12:46
поделиться

В C это зависит от того, как вы будете использовать строку:

  • именованная константа: ваш char * str = "string"; метод в порядке (но должен быть char const * )
  • данные, которые будут переданы в подфункцию, но не будут использоваться после того, как вызывающая функция вернет:
    char str [] = "строка";
  • данные, которые будут использоваться после функции, которой она является объявлен в exits: char * str = strdup ("string"); , и убедитесь, что в конечном итоге он получит free d.

Если это не покрывает этот вопрос, попробуйте добавить к своему ответу более подробные сведения.

13
ответ дан 6 December 2019 в 12:46
поделиться

Это C или C ++? В C ++ вы должны использовать std :: string :

std::string aString("stringcontenthere");
0
ответ дан 6 December 2019 в 12:46
поделиться
const char *thisvar="stringcontenthere";
1
ответ дан 6 December 2019 в 12:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: