C语言demo总结

1、找到数组里面唯一的单身狗

int find_single_num(int *array, int size)
{
	int num = 0;
	int index = 0;
	for(;index < size; index++){
		num = array[index] ^ num;
	}
	return num;
}

2、获取时间的函数windows版本

LARGE_INTEGER s, e, elapsetime;
LARGE_INTEGER Frequency;

void get_time(int *year, int *month, int *day, int *hour, int *minute, int *second, int *millisecond) {
    SYSTEMTIME st;
    GetSystemTime(&st);
    *year = st.wYear;
    *month = st.wMonth;
    *day = st.wDay;
    *hour = st.wHour;
    *minute = st.wMinute;
    *second = st.wSecond;
    *millisecond = st.wMilliseconds;
}

void test_time_start(void)
{
    int year, month, day, hour, minute, second, millisecond;
    get_time(&year, &month, &day, &hour, &minute, &second, &millisecond);
    printf("****************START:%04d-%02d-%02d %02d:%02d:%02d.%03d************************\n", year, month, day, hour, minute, second, millisecond);

    QueryPerformanceFrequency(&Frequency);
    QueryPerformanceCounter(&s);
    
}

void test_time_end(void)
{
    QueryPerformanceCounter(&e);
    elapsetime.QuadPart = e.QuadPart - s.QuadPart;

    elapsetime.QuadPart *= 1000000;
    elapsetime.QuadPart /= Frequency.QuadPart;
    int year, month, day, hour, minute, second, millisecond;
    get_time(&year, &month, &day, &hour, &minute, &second, &millisecond);
    printf("****************END:%04d-%02d-%02d %02d:%02d:%02d.%03d************************\n", year, month, day, hour, minute, second, millisecond);

    printf("****************elapsed time: %lld us*******************************************\n", elapsetime.QuadPart);
}

3、统计字符出现的次数

void count_chars(const char *str)
{
    if(NULL == str)
        return;
    int len = strlen(str);
    int count[256] = {0};

    for(int i = 0; i < len; i++)
    {
        count[(unsigned char)str[i]]++;
    }

    for(int i = 0; i < 256; i++)
    {
        if(count[i] > 0)
        {
            printf("%c:%d\n",i,count[i]);
        }
    }
    return;
}

4、修改windows的路径\变成/

void replace_path_ch(char *path)
{
    if(NULL == path)
        return;
    char *p = path;
    
    while(*p)
    {
        if(*p == '\\')
        {
            *p = '/';
        }
        p++;
    }
    return;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值