2017-02-15 4 views
0

Я действительно не знаю, как искать Google по этой теме, поэтому я надеюсь, что один из вас, ребята, поможет мне здесь.Как использовать переменную в цитате в C

В принципе у меня есть этот код:

fp = fopen("ELSO.html", "w"); 

Я также получил переменную с именем:

char name[25] = {"JohnShepard"}; 

То, что я хочу, чтобы позвонить Еореп так, что имя будет JohnShepard. html (т. е. содержимое переменной). Возможно ли такое?

+1

Вы можете использовать функцию конкатенации строк, 'strcat'. Что-то вроде: 'fp = fopen (strcat (name," .html ")," w ");' – AntonH

+0

Нет необходимости в фигурных скобках вокруг строки. – Barmar

+0

Спасибо, Антон, он работает. –

ответ

5

В качестве альтернативы strcat, вы можете использовать snprintf:

char buffer[100]; 
char name[25] = "JohnShepard"; 

int i = snprintf(buffer, sizeof buffer, "%s.html", name); 
// "i" should now contain the length of string in "buffer" 

FILE *fp = fopen(buffer, "w"); 
// ... etc ... 

Этот метод является более безопасным, чем strcat, потому что она требует от вас, чтобы обеспечить размер выходного буфера. Если места недостаточно, то вы не сможете перекрыть буфер (что опасно). Кроме того, он не изменяет исходную строку, но важно ли это или нет, зависит от вас.

+1

Хотя он откроет неправильный файл, если буфер слишком мал, что может быть проблемой безопасности –

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