c语言字符串转型,指针强制转换

字符串转float型

float chuli3(unsigned char* p)
{
   char  sign = 1;
    float temp = 0;
    int  ttt = 1;
    char size = 0,flag=0;
    if (*p == '-') {
        sign -= 2;
        p++;
    }
    //小数点前开始
    while (*p != '\0' && *p !='.')
    {
        temp *= ttt;
        temp += (*p - 48);
        ttt = 10;
        p++; 
    }
    //跳过小数点
    p++;
    //小数点后开始
    while (*p != '\0')
    {
        temp *= ttt;
        temp += (*p - 48);
        p++; size++;
    }
    while (--size)
        ttt *= 10;
    return sign * (float)(temp/ttt);
}

字符串转int型

int chuli2(unsigned char* p)
{
    char sign = 1;
    int temp=0;
   char  ttt = 1;
    if (*p == '-') {
        sign -= 2;
        p++;
    }
    while (*p != '\0')
    {
        temp *=ttt;
        temp += (*p - 48);
        ttt = 10;
        p++;
    }
    return sign*temp;

}

指针强制转换:以字符数组转int为例

int chuli1(unsigned char* p)
{
    int* a;
    a = (int*)p;
    return *a;
}
指针强制转换几乎是万能的,这只是对数据的一种解读方式。只要在连续的空间内有规则的排放数据,就能够使用指针强制转换

你可能感兴趣的:(字符串,指针,c语言)