备忘录
来源:互联网 发布:坐标系平移变换矩阵 编辑:程序博客网 时间:2024/06/06 15:38
字符串常量和字符数组
char* s1 = "hello"; // 字符串常量,保存在静态存储区,不能被修改s[0] = "H"; // crashchar s2[] = "world"; // 字符数组,栈中存储,可以被修改s2[0] = "W"; // ok
大小端模式判断
#define LITTEL_ENDIAN 2#define BIG_ENDIAN 1int check_endian(){ union{ char c; short s; }u; u.s = 0x1122; if (u.c == 0x11){ return BIG_ENDIAN; } return LITTEL_ENDIAN;// short i = 0x1122;// char* p = (char*)&i;// if (*p == 0x11)// return BIG_ENDIAN;// return LITTEL_ENDIAN;}
strcpy
char* mystrcpy(char* dst, const char* src){ assert(dst != NULL && src != NULL); char* _dst = dst; const char* _src = src; while( (*dst++ = *src++) != '\0'); return dst;}
atoi
int myatoi(char* s){ char* p = s; bool minus = false; long long num = 0; while(*p++ == ' '); if (*p == '+' || *p == '-'){ if (*p == '-') minus = true; ++p; } while(*p >= '0' && *p <= '9'){ num = num * 10 + *p - '0';// if ((minus && num<INT_MIN) || ((!minus) && num>INT_MAX)){// return minus ? INT_MIN : INT_MAX;// } ++p; } return (int)(minus ? -num : num);}
reverse
char* reverse(char* s){ char* start = s;// char* end = s + strlen(s) - 1; char* end = s; while (*end++ != '\0'); end -= 2; while (start < end){ char tmp = *start; *start = *end; *end = tmp; ++start; --end; } return s;}
itoa
char* myitoa(int value, char *buf, int radix){ bool minus = false; int num = value; char* p = buf; if (num < 0){ minus = true; num = -num; } do{ int rem = num % radix; num = num / radix; if (rem > 9){ *p = rem - 10 + 'a'; }else{ *p = rem + '0'; } ++p; }while(num > 0); if (minus){ *p = '-'; *(p+1) = '\0'; }else{ *p = '\0'; } return reverse(buf);}
阅读全文
1 0
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 备忘录
- 数据结构实验之图论四:迷宫探索
- Face To Camera
- 关于gitignore文件的创建与使用
- C# winForm读取配置文件 App.config
- C++性能系列之const使用心得
- 备忘录
- java线程池
- Datatables通过某列元素操作获取该行数据
- MVP结合RecycleView,利用retrofit与RxJava简单请求数据
- 当前时间的后一天
- 随机森林手写数字识别
- 跟我一起学JFinal系列一JFinal开发环境搭建
- (安卓) MVP 框架 (Rxjava2+Retrofit)结合 实现网络请求
- iphone黑屏转圈输入密码解锁问题的解决