strcpy () и strcat () не работают должным образом в Turbo C ++ (при инициализации массива из строковой строки) - PullRequest
0 голосов
/ 03 апреля 2019

Функции strcpy () и strcat () у меня не работают должным образом в Turbo C ++.Я дал свой код ниже.Я хочу, чтобы вывод был:

C:\TURBOC3\BIN\BANK\SHOP\SELLER\334pd.txt
C:\TURBOC3\BIN\BANK\SHOP\SELLER\334pr.txt
C:\TURBOC3\BIN\BANK\SHOP\CART\311itm.txt

C:\TURBOC3\BIN\BANK\SHOP\CART\311pzr.txt  

Но вывод, который я получаю:

C:\TURBOC3\BIN\BANK\SHOP\SELLER\334pd.txt
C:\TURBOC3\BIN\BANK\SHOP\SELLER\334pr.txt
C:\TURBOC3\BIN\BANK\SHOP\CART\311itm.txt  
4pd.txt  

Может ли кто-нибудь указать на ошибку в моем коде и как ее решить?

void add_to_cart(int se_id,int c_id,char p_name[])
{
    char id_seller[100],id_customer[100],id_seller1[100],id_customer1[100];
    itoa(se_id,id_seller,10);
    itoa(se_id,id_seller1,10);
    itoa(c_id,id_customer,10);
    itoa(c_id,id_customer1,10);
    strcat(id_seller,"pd.txt");
    strcat(id_seller1,"pr.txt");
    strcat(id_customer,"itm.txt");
    strcat(id_customer1,"pzr.txt");
    char location_of_cart_product[]="C:\\TURBOC3\\BIN\\BANK\\SHOP\\CART\\",location_of_cart_price[100];
    char location_of_product[]="C:\\TURBOC3\\BIN\\BANK\\SHOP\\SELLER\\",lop[100];
    strcpy(location_of_cart_price,location_of_cart_product);
    strcpy(lop,location_of_product);
    strcat(location_of_cart_product,id_customer);
    strcat(location_of_cart_price,id_customer1);
    strcat(lop,id_seller1);
    strcat(location_of_product,id_seller);
    puts(location_of_product);
    puts(lop);
    puts(location_of_cart_product);
    puts(location_of_cart_price);
}

1 Ответ

4 голосов
/ 03 апреля 2019

Эти заявления:

char location_of_cart_product[]="C:\\TURBOC3\\BIN\\BANK\\SHOP\\CART\\"
char location_of_product[100]="C:\\TURBOC3\\BIN\\BANK\\SHOP\\SELLER\\"

Выделите массив размером 33. Вы не можете добавить к этому массиву, используя strcat, не разбивая свой стек. См. инициализация массива

Вы можете написать:

char location_of_cart_product[100]="C:\\TURBOC3\\BIN\\BANK\\SHOP\\CART\\";
char location_of_product[100]="C:\\TURBOC3\\BIN\\BANK\\SHOP\\SELLER\\";

, который выделит 100 символов и инициализирует первую часть массива строкой.

...