1.现 strlen,获取字符串长度,代码实现:
2.实现 strcpy,字符串拷贝函数,代码实现:
3.实现 strstr,子串查找函数,代码实现:
eg: LeetCode problem: Implement strStr()
4. 实现 atoi,将一个字符串转化为整数,代码实现:
注意: 这道题,表面虽然简单,一般面试官虽然只是简单的描述,其实这时候的面试官,却暗中观察你如何思考,考虑到了那些边界数据,这才是这道题的重点.
注意几个测试用例:
-
不规则输入,但是有效,”-3924x8fc”,” + 413”, “-0001”
-
无效格式,” ++c”, ” ++1”
-
溢出数据,”2147483648”
LeetCode 上有道类似的题目:String to Integer (atoi)
5、实现 itoa,将一个整数转化为字符串,代码实现:
char *itoa(const int n, char str[]) {
if (n == 0) return "0";
int temp;
int i = 0;
if (n<0) temp = -n;
else temp = n;
do {
str[i++] = temp % 10 + '0';
} while ((temp/=10)>0);
if (n < 0) str[i++] = '-';
str[i] = '\0';
int len = i;
for (int j = len - 1, i = 0; j > i; j--, i++) {
str[j] ^= str[i];
str[i] ^= str[j];
str[j] ^= str[i];
}
return str;
}
//测试函数
int main() {
stringstream ss;
string str;
int n = 100;
char mystr[20],*ans;
ans = itoa(-152, mystr);
cout << ans << endl;
system("pause");
return 0;
}