字符串的各种操作向来也是面试官的最爱,从简单的开始:逆序输出字符串。
实现1:
1: void reverse(const char *str)
2: {
3: ssize_t i;
4: size_t len = strlen(str);
5:
6: for (i = len; i >=0; --i) {
7: printf("%c", *(str + i));
8: }
9: printf("\n");
10: }
这里要注意的是循环变量i一定要声明成带符号类型的, 否则就会陷入死循环了。
实现2:
递归版本
1: void reverse(const char *str)
2: {
3: if (*str) {
4: if (*(str+1)) {
5: reverse(str+1);
6: }
7: printf("%c", *str);
8: }
9: }