Я делаю динамический запрос PUT с помощью конкатенации строк с C. Моя проблема в том, что после первого запроса строка, которая мне нужна, чтобы оставаться статической putEndpoint
, изменяется с помощью string concatenation Я использую его для.Конкатенация строк без изменения исходных значений - C
char putEndpoint[] = "PUT /api/v1/products/";
char http[] = " HTTP/1.1";
char productID[idLen];
for(int i = 0; i < 13; i++) {
productID[i] = newTag[i];
}
// going into this strcat, putEndpoint correctly = "PUT /api/v1/products/"
char *putRequestID = strcat(putEndpoint,productID);
// putEndpoint now = "PUT /api/v1/products/xxxxxxxxxxx"
char *putRequestEndpoint = strcat(putRequestID,http);
Теперь, если бы я, чтобы сделать 2-й вызов (который мне нужно будет делать), putEndpoint
инициализирует в "PUT /api/v1/products/xxxxxxxxxxx"
.
EDIT: Есть ли альтернатива
strcat()
, которая может выполнить эту конкатенацию? Теперь я понимаю, чтоstrcat()
предназначен для изменения значений.
У вас есть некоторые неприятные ошибки там ... –
@PaulR заботиться о разработке? –
Почему бы не создать временную переменную, которая просто сохранит значение 'putEndpoint', а затем просто установит' putEndpoint' равным этой переменной темпа? – bpgeck