TransWikia.com

Изменить значение переменной char через функцию

Stack Overflow на русском Asked on December 30, 2021

Я хочу что бы было что то вроде

void func(int i, char* name)
{
    if (i = 3)
    {
        std::cout << name << std::endl; //valera
        name = "anton";
        std::cout << name; //anton
    }

}
int main()
{
    static char name[] = "valera";
    func(3, name);
    std::cout << name; // anton

}

Но при попытке выполнить этот код у меня ошибка
E0513 значение типа "const char *" нельзя присвоить сущности типа "char *"
Как мне правильно сделать код?

One Answer

Перефразируя из "Ивана Васильевича" - "да сделать-то его, царь-надёжа, не мудрено":

void func(int i, char* name)
{
    if (i = 3)
    {
        std::cout << name << std::endl; //valera
        strcpy(name,"anton");
        std::cout << name; //anton
    }

}
int main()
{
    static char name[] = "valera";
    func(3, name);
    std::cout << name; // anton
}

Только вот то ли это, что вы хотите?

Например, точно нужно присваивание, а не сравнение? :)

    if (i = 3)

Далее - нужно позаботиться, чтоб передаваемый массив имел достаточно места для размещения новой строки...

Answered by Harry on December 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP