Просто сравните первые семь символов массива, чтобы увидеть, соответствует ли он "http://",", и в этом случае разбейте строку сразу после этой точки. Таким образом, вы можете сделать следующее:
char* full_url = "http://www.example.com";
char* final_url = NULL;
//copy the header into a temporary buffer
char[8] http_header;
strncpy(http_header, full_url, sizeof(http_header));
http_header[7] = '\0'; //NULL-terminate the string
if (strcmp(http_header, "http://") == 0)
final_url = &full_url[7];
else
final_url = full_url;
Единственное, с чем следует быть осторожным в этом коде, это то, что все, на что указывает final_url
, имеет срок жизни, который превышает срок жизни final_url
... иначе final_url
больше не будет указывать на действительную память. Это не должно быть проблемой, хотя внутри функции, которой передается указатель на строку, где final_url
используется только внутри самой функции.