Если вы просто хотите получить копию указателя , вы можете использовать:
tempmonth = month;
но это означает, что оба указывают на одни и те же базовые данные - измените одно, и это повлияет на оба.
Если вам нужны независимые строки, вполне вероятно, что ваша система будет иметь strdup
, в этом случае вы можете использовать:
tempmonth = strdup (month);
// Check that tempmonth != NULL.
Если ваша реализация не имеет strdup
, получает один :
char *strdup (const char *s) {
char *d = malloc (strlen (s) + 1); // Allocate memory
if (d != NULL) strcpy (d,s); // Copy string if okay
return d; // Return new memory
}
Для печати строк в отформатированном виде посмотрите на семейство printf
, хотя для простой строки, подобной этой, идущей на стандартный вывод, puts
может быть достаточно хорошим (и, вероятно, более эффективным).