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; }
/* *创建一个新的矩阵节点,不新建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)); }