题目:实现字符串反转,要求不使用任何系统函数,且时间复杂度最小,函数原型:char* reverse_str(char* str)
解题思路:想到的思路是在字符串开始和结尾部分分别定义一个指针,比如说p和q,p向后遍历,q向前遍历,每当p和q各自指向一个字符时,交换,再继续遍历,知道p>q为止。代码如下:
char* reverse_str(char str[]){
int start = 0;
int end = 0;
while (*(str+end) != '\0'){
end++;
}
char temp = '\0';
while(start < end){
temp = str[start];
str[start] = str[end];
str[end] = temp;
start ++;
end --;
}
return str;
}