Example #1
0
char *util_itoa(int value, int radix, char *string)
{
    if (string == NULL)
        return NULL;

    if (value != 0)
    {
        char scratch[34];
        int neg;
        int offset;
        int c;
        unsigned int accum;

        offset = 32;
        scratch[33] = 0;

        if (radix == 10 && value < 0)
        {
            neg = 1;
            accum = -value;
        }
        else
        {
            neg = 0;
            accum = (unsigned int)value;
        }

        while (accum)
        {
            c = accum % radix;
            if (c < 10)
                c += '0';
            else
                c += 'A' - 10;

            scratch[offset] = c;
            accum /= radix;
            offset--;
        }
        
        if (neg)
            scratch[offset] = '-';
        else
            offset++;

        util_strcpy(string, &scratch[offset]);
    }
    else
    {
        string[0] = '0';
        string[1] = 0;
    }

    return string;
}
u_int8 gmenu_input_makestr(enum GMENU_INPUT_TYPE type, u_int8 *buffer,p_void data)
{
    switch (type)
    {
        case GMENU_INPUT_TYPE_VALUE:
            sprintf(buffer, "%d", (u_int32)data);
            break;
        case GMENU_INPUT_TYPE_CHAR:
            if (data)
            {
                util_strcpy(buffer, (p_cstr)data);
            }
        default:
            break;
    }
    return 0;
}
Example #3
0
/*
 *创建一个新的矩阵节点,不新建ans,如果已存在则重新进行内存分配,Error
 */
Matrix* stor_create(char* matrix_name, int m, int n)
{
	Matrix_Node *p = NULL;
	int flag;

	if (matrix_name == NULL)
	{
		return NULL;
	}
	if (strlen(matrix_name) == 0)
	{
		return NULL;
	}
	if(!strcmp(matrix_name, "ans"))
	{
		//Error
		printf("ans can't be created\n");
		return NULL;
	}
	p = matrixHeadNode;
	if (!p)
	{
		//Error
		return NULL;
	}
	if (p->left == NULL)//There is no node in the tree
	{
		p->left = (Matrix_Node *)malloc(sizeof(Matrix_Node));
		p = p->left;
		p->name = (char *)malloc(strlen(matrix_name)+1);
		if (p->name == NULL)
		{
			//Error
			return NULL;
		}
		util_strcpy(p->name, matrix_name);
		p->left = NULL;
		p->right = NULL;
		p->matrix = NULL;

		return (stor_createMatrix(&(p->matrix), m, n));
	}
	else
	{
		p = p->left;
		while (flag = strcmp(matrix_name, p->name))
		{
			if (flag > 0)
			{
				if (p->right == NULL)
				{
					p->right = (Matrix_Node *)malloc(sizeof(Matrix_Node));
					p = p->right;
					p->name = (char *)malloc(strlen(matrix_name)+1);
					if (p->name == NULL)
					{
						//Error
						return NULL;
					}
					util_strcpy(p->name, matrix_name);
					p->left = NULL;
					p->right = NULL;
					p->matrix = NULL;

					return (stor_createMatrix(&(p->matrix), m, n));
				}
				else
				{
					p = p->right;
				}
			}
			else
			{
				if (p->left == NULL)
				{
					p->left = (Matrix_Node *)malloc(sizeof(Matrix_Node));
					p = p->left;
					p->name = (char *)malloc(strlen(matrix_name)+1);
					if (p->name == NULL)
					{
						//Error
						return NULL;
					}
					util_strcpy(p->name, matrix_name);
					p->left = NULL;
					p->right = NULL;
					p->matrix = NULL;
					return (stor_createMatrix(&(p->matrix), m, n));
				}
				else
				{
					p = p->left;
				}
			}
		}
	}
	//has been created before
	stor_freeMatrix(p->matrix);
	return (stor_createMatrix(&(p->matrix), m, n));
}