We study the problem of platoon formation, trying to optimize traveling time and fuel consumption based on-car-to platoon assignments. The general concept of platooning, i.e., cars traveling in form of a road train with minimized safety gaps, has been studied in depth and we see first field trials on the road. A number of projects already convinced the public that platooning helps substantially reducing fuel consumption, along with emissions, and offers better road utilization. Currently, most research focuses on improved reliability of the necessary communication protocols to achieve perfect string stability with guaranteed safety measures. One aspect, however, remained unexplored: the problem of assigning cars to platoons. Based on the capabilities of individual cars (e.g., max. acceleration or speed) and preferences of the driver (e.g., min/max. traveling speed, preference on travel time vs. fuel consumption), the assignment decision will be different. We formulate an optimization problem and develop a set of protocols (centralized and distributed) to support platoon formation. In an extensive series of simulation experiments, we show that our protocols not just help forming platoons, but also take care of the individual requirements of cars and drivers. The selection of the formation approach as well as the willingness to compromise influences the platoon assignments. Considering the selected metrics, a better overall performance can be achieved using the distributed approach, e.g., longer platoons can be formed and more fuel can be saved.