编写一个函数reverse_string(char*string),实现将参数字符串中的倒叙 如 char arr[]=“abcdef“变为“fedcba“

简介: 编写一个函数reverse_string(char*string),实现将参数字符串中的倒叙 如 char arr[]=“abcdef“变为“fedcba“
//编写一个函数reverse_string(char*string),实现将参数字符串中的倒叙
// 如 char arr[]="abcdef"变为"fedcba"
// 
//方法一,循环法
//#include<stdio.h>
//my_strlen(char* str)
//{
//    int count = 0;
//    while (*str != 0);
//    {
//        count++;
//        str++;
//    }
//    return count;
//}
//void reverse_string(char* str)//void为不需要返回值void   (char为字符串类型    *str是取地址)
//{
//    int left = 0;
//    int right = my_strlen(str) - 1;
//    while (left < right)
//    {
//        char tmp = str[left];
//        str[left] = str[right];
//        str[right] = tmp;
//        left++;
//        right--;
//    }
//}
//int main()
//{
//    char arr[] = "abcdef";
//    reverse_string(arr);//定义函数
//    printf("%s\n", arr);//打印结果为fedcba
//    return 0;
//}
//方法二:取地址法
//#include<stdio.h>
//my_strlen(char* str)
//{
//    int count = 0;
//    while (*str != 0);
//    {
//        count++;
//        str++;
//    }
//    return count;
//}
//void reverse_string(char* str)//void为不需要返回值void   (char为字符串类型    *str是取地址)
//{
//    int left = 0;
//    int right = my_strlen(str) - 1;
//    while (left < right)
//    {
//        char tmp = *(str + left);
//        *(str + left) = *(str + right);
//        *(str + right) =tmp;
//        left++;
//        right--;
//    }
//}
//int main()
//{
//    char arr[] = "abcdef";
//    reverse_string(arr);//定义函数
//    printf("%s\n", arr);//打印结果为fedcba
//    return 0;
//}
//方法三:递归法
#include<stdio.h>
my_strlen(char* str)
{
    int count = 0;
    while (*str != 0);
    {
        count++;
        str++;
    }
    return count;
}
void reverse_string(char* str)//void为不需要返回值void   (char为字符串类型    *str是取地址)
{
    char tmp = *str;//把a从地址中拿出来
    int len = my_strlen(str);//求地址并求字符串长度
    *str = *(str + len - 1);//把原来的f即*(str+len-1)拿出,放在*str位置,即最前面
    *(str + len - 1) = '\0';//将\0拿出
    if (my_strlen(str + 1) >= 2)//判断条件
    {
        reverse_string(str + 1);
    }
}
int main()
{
    char arr[] = "abcdef";
    reverse_string(arr);//定义函数
    printf("%s\n", arr);//打印结果为fedcba
    return 0;
}


e768f68304f84dffac7f873f5dad86e7.jpg


ac2fd1ff6e3345989bb2e34eed942567.jpg

相关文章
|
3月前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
54 1
|
15天前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
33 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
10天前
|
NoSQL Redis
Redis 字符串(String)
10月更文挑战第16天
26 4
|
21天前
|
canal 安全 索引
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
32 5
|
1月前
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
38 3
|
3月前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
|
2月前
|
存储 C++
C++(五)String 字符串类
本文档详细介绍了C++中的`string`类,包括定义、初始化、字符串比较及数值与字符串之间的转换方法。`string`类简化了字符串处理,提供了丰富的功能如字符串查找、比较、拼接和替换等。文档通过示例代码展示了如何使用这些功能,并介绍了如何将数值转换为字符串以及反之亦然的方法。此外,还展示了如何使用`string`数组存储和遍历多个字符串。
|
3月前
|
C# 开发者 UED
WPF开发者必备秘籍:深度解析文件对话框使用技巧,打开与保存文件原来如此简单!
【8月更文挑战第31天】在WPF应用开发中,文件操作是常见需求。本文详细介绍了如何利用`Microsoft.Win32`命名空间下的`OpenFileDialog`和`SaveFileDialog`类来正确实现文件打开与保存功能。通过示例代码展示了如何设置文件过滤器、初始目录等属性,并使用对话框进行文件读写操作。正确使用文件对话框能显著提升用户体验,使应用更友好易用。
64 0
|
3月前
|
API C# 开发者
WPF图形绘制大师指南:GDI+与Direct2D完美融合,带你玩转高性能图形处理秘籍!
【8月更文挑战第31天】GDI+与Direct2D的结合为WPF图形绘制提供了强大的工具集。通过合理地使用这两种技术,开发者可以创造出性能优异且视觉效果丰富的WPF应用程序。在实际应用中,开发者应根据项目需求和技术背景,权衡利弊,选择最合适的技术方案。
112 0
|
3月前
|
存储 JSON NoSQL
揭秘Redis字符串String的隐藏技能!从基础到进阶,让你的数据存储操作秒变高大上!
【8月更文挑战第24天】Redis中的字符串类型作为其基石,不仅能够存储从简单文本到复杂格式如JSON的各种数据,还能通过多样化的命令实现包括但不限于自增自减、设置过期时间等高级功能,极大提升了其实用性和灵活性。例如,使用`SET`命令可添加或更新键值对,`GET`获取值,`DEL`删除键;同时,`INCR`和`DECR`支持对整数值的原子性增减操作,非常适合实现计数器等功能;通过`EXPIRE`命令设置过期时间,则适用于需要限时存储的应用场景。尽管名为“字符串”,但实际上还可存储图片、音频文件的Base64编码等形式的数据,为开发者提供了强大而灵活的工具。
47 0