I am working on code to get USB device details into single String, and have following code,

```
    struct usb_bus *bus;
    struct usb_device *dev;

    usb_init();
    usb_find_busses();
    usb_find_devices();

    for (bus = usb_busses; bus; bus = bus->next)
        for (dev = bus->devices; dev; dev = dev->next)
    {

            // working outputs
            printf("Trying device %s/%s\n", bus->dirname, dev->filename);
            printf("Trying device2 %0x\n", dev->descriptor.idVendor);
            printf("Trying device3 %0x\n", dev->descriptor.idProduct);

        char deviceDetailsStr[150]; 
        sprintf(deviceDetailsStr, "%s_%s_%0x_%0x", bus->dirname, 
           dev->filename,dev->descriptor.idVendor,dev->descriptor.idProduct);

        ... have other code here that works on "deviceDetailsStr"
    }

```

Been reading thatt "sprintf" has performance issues, since it supports lots of transforms.

Can you please suggest what is better alternative to using "sprintf", so that all 4 variables data gets read into variable "deviceDetailsStr"

End goal is "deviceDetailsStr" char array needs to have all 4 entires as single string.

Thanks