Я пытаюсь реализовать функцию, которая преобразует char*
формы [name]
в name
. Вот моя функция:
char* rmChar (char* tagName){
char* newName = tagName;
newName++; //remove first character
unsigned long len = strlen(newName)-1;
if (newName[len] == '\n'){
newName[len] = 0;
newName[len-1] = 0;
}
else{
newName[len] = 0;
}
return newName;
}
Я не понимаю, что если я применяю свою функцию к переменной типа char*
, она изменится. Например, если я запустил следующий код:
char test[] = "[test]";
printf("%s", rmChar(test));
printf("%s", test);
, он распечатает: test[test
Я не понимаю, почему переменная была изменена на [test
? есть ли способ изменить мою функцию rmChar так, чтобы переменная test
не изменилась?
Спасибо!