编写一个函数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

相关文章
|
Java 索引
String字符串常用函数以及示例 JAVA基础
String字符串常用函数以及示例 JAVA基础
170 1
|
SQL 索引
在 SQL Server 中使用 STRING_AGG 函数
【8月更文挑战第5天】
3327 2
在 SQL Server 中使用 STRING_AGG 函数
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
|
存储 Serverless 数据处理
Python - len(string)函数
通过上述介绍和示例,我们可以清楚地看到,在Python中,`len()`函数是处理字符串以及其他可迭代对象长度的重要工具。它简单、易用,但在实际应用中却非常强大,无论是在基础编程还是在复杂的数据处理中,`len()`函数都扮演着不可或缺的角色。
326 10
|
C++
C++ string中的函数和常用用法
C++ 中string中的函数和常用用法
229 4
|
存储 C++
【C++】string类的使用③(非成员函数重载Non-member function overloads)
这篇文章探讨了C++中`std::string`的`replace`和`swap`函数以及非成员函数重载。`replace`提供了多种方式替换字符串中的部分内容,包括使用字符串、子串、字符、字符数组和填充字符。`swap`函数用于交换两个`string`对象的内容,成员函数版本效率更高。非成员函数重载包括`operator+`实现字符串连接,关系运算符(如`==`, `&lt;`等)用于比较字符串,以及`swap`非成员函数。此外,还介绍了`getline`函数,用于按指定分隔符从输入流中读取字符串。文章强调了非成员函数在特定情况下的作用,并给出了多个示例代码。
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
219 0
|
安全 编译器 C++
【剑指offer】2.2编程语言(p22-p25)——面试题1:string赋值运算函数
【剑指offer】2.2编程语言(p22-p25)——面试题1:string赋值运算函数
7.C++中string的一些超常用函数 (附习题)
7.C++中string的一些超常用函数 (附习题)
new String()定义字符串为空,char[] chs = {‘a‘,‘b‘,‘c‘} String s2 = new String(chs) 输出abc,byte定99为a
new String()定义字符串为空,char[] chs = {‘a‘,‘b‘,‘c‘} String s2 = new String(chs) 输出abc,byte定99为a