#include <iostream>
#include <algorithm>
#include <string>
#include <string.h>
using namespace std;
void replace_callID ( char* msg, char* newVal)
{
const string callIdToken = "CALL-ID: ";
string s(msg);
string u(s);
transform(u.begin(), u.end(), u.begin(), ::toupper);
size_t pos, pos1;
if((pos = u.find(callIdToken)) != string::npos &&
(pos1 = u.find("\r\n", pos)) != string::npos)
{
s.replace(pos + callIdToken.length(), pos1 - pos - callIdToken.length(), newVal);
strcpy(msg, s.c_str());
}
}
int main() {
// your code goes here
char msg[100];
strcpy(msg, "test\r\nCall-Id: 1234\r\ntest");
replace_callID (msg, "1112458254");
cout << msg;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHJlcGxhY2VfY2FsbElEICggY2hhciogbXNnLCAgY2hhciogbmV3VmFsKQp7Cgljb25zdCBzdHJpbmcgY2FsbElkVG9rZW4gPSAiQ0FMTC1JRDogIjsKCXN0cmluZyBzKG1zZyk7CglzdHJpbmcgdShzKTsKCXRyYW5zZm9ybSh1LmJlZ2luKCksIHUuZW5kKCksIHUuYmVnaW4oKSwgOjp0b3VwcGVyKTsKCXNpemVfdCBwb3MsIHBvczE7CglpZigocG9zID0gdS5maW5kKGNhbGxJZFRva2VuKSkgIT0gc3RyaW5nOjpucG9zICYmCgkgICAocG9zMSA9IHUuZmluZCgiXHJcbiIsIHBvcykpICE9IHN0cmluZzo6bnBvcykKCXsKCQlzLnJlcGxhY2UocG9zICsgY2FsbElkVG9rZW4ubGVuZ3RoKCksIHBvczEgLSBwb3MgLSBjYWxsSWRUb2tlbi5sZW5ndGgoKSwgbmV3VmFsKTsKCQlzdHJjcHkobXNnLCBzLmNfc3RyKCkpOwoJfQp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWNoYXIgbXNnWzEwMF07CglzdHJjcHkobXNnLCAidGVzdFxyXG5DYWxsLUlkOiAxMjM0XHJcbnRlc3QiKTsKCXJlcGxhY2VfY2FsbElEIChtc2csICIxMTEyNDU4MjU0Iik7Cgljb3V0IDw8IG1zZzsKCXJldHVybiAwOwp9