当前位置: 首页> 教育> 大学 > 网站建设seo运营规划_深圳seo推广公司_西安做网站的网络公司_合肥网站建设程序

网站建设seo运营规划_深圳seo推广公司_西安做网站的网络公司_合肥网站建设程序

时间:2025/7/13 0:34:49来源:https://blog.csdn.net/qq_42550898/article/details/144235841 浏览次数:1次
网站建设seo运营规划_深圳seo推广公司_西安做网站的网络公司_合肥网站建设程序

文章目录

    • 概要
    • 整体架构流程
    • 技术名词解释
    • 技术细节
    • 小结

1. 概要

👉 Jack Qiao带着米粒来到神农架:“欢迎,勇敢的探索者。”一个神秘的声音从四面八方传来,“要解开我的秘密,你必须证明你的智慧和勇气。我将给你一段魔法咒语“ooB idibboB idibbiB”,但它是逆序书写而成的。只有正确地逆转这段咒语,你才能继续前行。”

😇 米粒想到用指针来逆转字符串。


 

2. 整体架构流程

2.1. 头文件

#include <stdio.h>
#include <string.h>

 🌻 #include <stdio.h>包含标准输入输出库的头文件,用于处理基本的输入输出操作,如 printf scanf

🌻 #include <string.h>包含字符串处理函数的头文件,用于计算字符串长度,如 strlen


 

2.2. 反转函数reverse 

void reverse(char arr[]) {int len = strlen(arr);  // 获取字符串长度for (int left = 0, right = len - 1; left < right; left++, right--) {// 交换字符char temp = arr[left];arr[left] = arr[right];arr[right] = temp;}
}

🌹 参数:char arr[] 是一个字符数组(实际上是一个指向字符的指针),表示要反转的字符串。
🌹 局部变量len:使用 strlen(arr) 获取字符串的实际长度(不包括终止符 '\0'
🌹 循环逻辑:使用 for 循环,从两端向中间逐步交换字符。left 初始化为 0,表示从字符串的左端开始。right 初始化为 len - 1,表示从字符串的右端开始。条件 left < right 确保只在左右两端指针没有相遇或交错时进行交换。

🌹  在每次迭代中:使用临时变量 temp 存储 arr[left] 的值。将 arr[right] 的值赋给 arr[left]。将 temp 的值赋给 arr[right]。分别将 left right 向中间移动一位,即 left++ right--
🌹 这个过程一直持续到 left right 相遇或交错,此时整个字符串已经反转完毕。


 

2.3. 主函数main 

int main() {char arr[] = "ooB idibboB idibbiB";reverse(arr);printf("%s\n", arr);return 0;
}

🌷 定义字符数组:char arr[] = "ooB idibboB idibbiB"; 定义并初始化一个包含字符串 "ooB idibboB idibbiB" 的字符数组。注意字符数组末尾会自动添加一个空字符 '\0'


2.4. 运行结果 


2.5. 所有程序

#include <stdio.h>
#include <string.h>

void reverse(char arr[]) 
{
    int len = strlen(arr);  // 获取字符串长度
    for (int left = 0, right = len - 1; left < right; left++, right--)
    {
        // 交换字符
        char temp = arr[left];
        arr[left] = arr[right];
        arr[right] = temp;
    }
}

int main() 
{
    char arr[] = "ooB idibboB idibbiB";
    reverse(arr);
    printf("%s\n", arr);
    return 0;
}
 

3. 技术名词解释

Bibbidi Bobbidi Boo 来自迪士尼动画《灰姑娘,仙母用这句咒语帮助灰姑娘实现愿望,比如将南瓜变成马车。


4. 技术细节 

4.1. 反转函数reverse 

void reverse(char arr[]) 
{int len = strlen(arr);  // 获取字符串长度for (int left = 0, right = len - 1; left < right; left++, right--){// 交换字符char temp = arr[left];arr[left] = arr[right];arr[right] = temp;}
}

 🌹 局部变量len:使用 strlen(arr) 获取字符串的实际长度(不包括终止符 '\0'


5. 小结

✅ 使用 strlen 获取字符串长度时,它不包括结尾的空字符 '\0'。所以反转时,右指针应该初始化为 len - 1
✅ 反转字符串时,确保左右两端的字符正确交换,直到两个指针相遇或交错。每次交换后,左指针向右移,右指针向左移。
❗ 这个方法适用于单字节字符(如英文)。如果处理多字节字符(如中文),直接按字节交换可能会导致乱码

关键字:网站建设seo运营规划_深圳seo推广公司_西安做网站的网络公司_合肥网站建设程序

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: