标签:字符串翻转
思想
- 定义头尾两个指针
- 交换头尾指针的数据
//字符串翻转
char *strrev(char *str){
//判断字符是否为null或是空字符串
if(str == NULL || str == ‘\0‘) {
return str;
}
//定义char数组指针
char *start = str;
char *end = str;
while(*end != ‘\0‘){ //指向最后一个结点
end ++;
}
//交换头和尾的值
char temp;
--end; //去除\0的位置
while(start < end){
temp = *start;
*start = *end;
*end = temp;
start ++;
end --;
}
return str;
}
int main(void){
char str[] = "wangming";
cout << strrev(str);
return 0;
}
结果
如果可以利用系统的函数,可以定义一个栈, 让字符数组入栈, 然后在出栈也可以达到这个效果, 但是题目却不让使用 系统内提供的资源, 只能利用原始方法了.
如果 时间复杂度还能再低的, 请留言.
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:字符串翻转
原文地址:http://blog.csdn.net/u010187139/article/details/47208919