剑指offer_常用编程技巧总结 2
参考我的另一篇博客:剑指offer_常用编程技巧总结
http://blog.csdn.net/cmm0401/article/details/73694921
1、string 的结尾字符:
全局的 std::getline 返回 std::string,这个不一定是 '\0' 结尾。有的编译器会加,有的编译器不会加。
但是,注意:新的C++标准C++11里面规定: std::string 一定是以 '\0' 结尾,就看你的编译器有没有实现新标准了。
istream::getline 返回 c 字符数组,这个一定是 '\0' 结尾。2、#include<cstring> //memset函数的头文件
const int tablesize=256;
unsigned int hashtable[tablesize];
memset(hashtable, 0, sizeof(int)*tablesize);
3、字母的大小写转换
【用C语言标准库函数toupper,tolower】
头文件:cctype c下面:ctype.h
转大写:toupper
转小写:tolower
缺陷:只能转换单个字符。
Example:
char ch = 'a';
ch2 = towupper(ch); // A
【std::string 转换大小写】
很遗憾,std::string 没有提供大小写转换的功能,所以只能用STL中的transform结合toupper/tolower完成。
头文件: string, cctype,algorithm
转小写
transform(str.begin(),str.end(),str.begin(),tolower);
transform(wstr.begin(), wstr.end(), wstr.begin(), towlower);
转大写
transform(s.begin(), s.end(), s.begin(), toupper);
transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);
Example:
wstring wstr =L"Abc";
transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);
4、两个数学函数:
floor():功能: 函数返回参数 不大于 arg 的最大整数。例如,
y = 6.04; x = floor( y );
x的值为 6.0
ceil():功能: 函数返回参数 不小于 num 的最小整数。例如,
y = 6.04;
x = ceil( y );
x的值为 7.0
abs(),labs(),fabs()。
5、数字转字符串、字符串转数字(c++函数)
数字转字符串:num2str()
字符串转数字:str2num()
上面方法很简便, 缺点是处理大量数据转换速度较慢。C library中的 sprintf sscanf 相对更快
可以用 sprintf 函数将数字输出到一个字符缓冲区中. 从而进行了转换...
例如:
已知从0点开始的秒数(seconds) ,计算出字符串"H:M:S", 其中H是小时, M=分钟,S=秒
int H, M, S;
string time_str;
H=seconds/3600;
M=(seconds%3600)/60;
S=(seconds%3600)%60;
char ctime[10];
sprintf(ctime, "%d:%d:%d", H, M, S); // 将整数转换成字符串
time_str=ctime; // 结果
与sprintf对应的是 sscanf 函数, 可以将字符串转换成数字:
char str[] = "15.455";
int i;
float fp;
sscanf( str, "%d", &i ); // 将字符串转换成整数 i = 15
sscanf( str, "%f", &fp ); // 将字符串转换成浮点数 fp = 15.455000
//打印
printf( "Integer: = %d ", i+1 );
printf( "Real: = %f ", fp+1 );
return 0;
6、C++常用头文件集合:
C/C++常用头文件及函数汇总
http://blog.csdn.net/thisispan/article/details/7470335
7、
注释:ASCII 码表包含数值在0-127之间的字符的十进制、八进制以及十六进制表示。
十进制 | 八进制 | 十六进制 | 字符 |
---|
48 | 60 | 30 | 0 | |
49 | 61 | 31 | 1 | |
50 | 62 | 32 | 2 | |
51 | 63 | 33 | 3 | |
52 | 64 | 34 | 4 | |
53 | 65 | 35 | 5 | |
54 | 66 | 36 | 6 | |
55 | 67 | 37 | 7 | |
56 | 70 | 38 | 8 | |
57 | 71 | 39 | 9 |
65 | 101 | 41 | A | |
66 | 102 | 42 | B | |
67 | 103 | 43 | C | |
68 | 104 | 44 | D | |
69 | 105 | 45 | E | |
70 | 106 | 46 | F | |
71 | 107 | 47 | G | |
72 | 110 | 48 | H | |
73 | 111 | 49 | I | |
74 | 112 | 4A | J | |
75 | 113 | 4B | K | |
76 | 114 | 4C | L | |
77 | 115 | 4D | M | |
78 | 116 | 4E | N | |
79 | 117 | 4F | O | |
80 | 120 | 50 | P | |
81 | 121 | 51 | Q | |
82 | 122 | 52 | R | |
83 | 123 | 53 | S | |
84 | 124 | 54 | T | |
85 | 125 | 55 | U | |
86 | 126 | 56 | V | |
87 | 127 | 57 | W | |
88 | 130 | 58 | X | |
89 | 131 | 59 | Y | |
90 | 132 | 5A | Z |
98 | 142 | 62 | b | ||
99 | 143 | 63 | c | ||
100 | 144 | 64 | d | ||
101 | 145 | 65 | e | ||
102 | 146 | 66 | f | ||
103 | 147 | 67 | g | ||
104 | 150 | 68 | h | ||
105 | 151 | 69 | i | ||
106 | 152 | 6A | j | ||
107 | 153 | 6B | k | ||
108 | 154 | 6C | l | ||
109 | 155 | 6D | m | ||
110 | 156 | 6E | n | ||
111 | 157 | 6F | o | ||
112 | 160 | 70 | p | ||
113 | 161 | 71 | q | ||
114 | 162 | 72 | r | ||
115 | 163 | 73 | s | ||
116 | 164 | 74 | t | ||
117 | 165 | 75 | u | ||
118 | 166 | 76 | v | ||
119 | 167 | 77 | w | ||
120 | 170 | 78 | x | ||
121 | 171 | 79 | y | ||
122 | 172 | 7A | z |