题解 | #数组逆置#

数组逆置

https://www.nowcoder.com/practice/b4f598480524493aae4686947fbf31dc

不用c++ reverse函数的解法:(常规char数组方法)

注意!尾指针指到字符数组最后一位是'\0',并不是有效字符, 此时,尾指针q需要回退一位。

#include <algorithm>
#include <iostream>
using namespace std;
#define N 201
void Myreverse(char str[]){
    char *p = str;  //头指针
    char *q = str;  //尾指针
    char temp;
    while (*q != '\0'){ //指到数组末尾'\0'
        q++;
    }
    q--;	//要指到字符数组的有效字符的最后一位,所以要从'\0'位回退一位
    while (p < q){
	  //交换
        temp = *q;
        *q = *p;
        *p = temp;
	  //移动指针
        p++;
        q--;
    }
}
int main() {
    char str[N];
    while (cin >> str) { // 注意 while 处理多个 case
        Myreverse(str);
        cout << str << endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 16:22
主包是26应届生,投大厂简历一直过不了初筛,想问问大家有必要花钱改简历吗
Java抽象带篮子:我之前专门发个帖子说不要付费改简历的,里面还详细写了简历怎么写,你可以去看看
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务