All pastes #674868 Raw Edit

Miscellany

public text v1 · immutable
#674868 ·published 2007-08-29 16:20 UTC
rendered paste body
#include <iostream>

struct IRCName{ char *username, *hostname, *host; };
IRCName* parseIRCName(char *full);

int main(){
    IRCName *user;
    char *string = "bananafly!~uejcpo@81-229-120-21-no28.tcbn.telia.com";
    for(int i=0;i<1000000;i++){
        user = parseIRCName(string);
        delete user->hostname;
        delete user->username;
        delete user->host;
        delete user;
    }
    std::cout << "Done!";
    std::cin.get();
    return 0;
}

IRCName* parseIRCName(char *full){
    IRCName *ret;
    ret = new IRCName;
    char *p, *tmp;
    int *len;
    
    tmp = new char[255];
    for(p=full;*p != '!';p++)
        tmp[p-full] = *p;
    tmp[p-full] = '\0';
    len = new int;
    *len = strlen(tmp);
    ret->username = new char[*len];
    strcpy(ret->username, tmp);
    delete tmp;
    
    tmp = new char[255];
    for(p++;*p != '@';p++)
        tmp[p-full-*len-1] = *p;
    tmp[p-full-*len-1] = '\0';
    ret->hostname = new char[strlen(tmp)];
    strcpy(ret->hostname, tmp);
    delete tmp;
    delete len;
    
    p++;
    ret->host = new char[strlen(p)];
    strcpy(ret->host, p);

    return ret;
}