我有一個函數(在C中)傳遞一個URL。此功能僅適用於URL參數的形式爲www.example.com
,而不是http://www.example.com
。如何從C中的char數組中刪除前導「http://」?
我想修改這個函數,這樣當以http://www.example.com
的形式傳遞一個URL時,它會剝去前導http://
(如果存在),以便它能夠正常運行。
我該如何在C中做到這一點?
這裏是有問題的功能(讓我知道如果有一個更好的方式來做到這一點):
char* get_ip (char* url)
{
struct hostent* h;
if ((h = gethostbyname(url)) == NULL)
return NULL;
return inet_ntoa(*((struct in_addr*)h->h_addr));
}
爲了得到它工作其他的方案如ftp也可以簡單地在'://'和下一個'/'之間提取(如果存在的話)。如果主機部分包含「@」,則主機名將從該字符開始。一個特殊的情況是file:/// xyz,它會導致一個空字符串並返回'localhost'。 –