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

相关文章
|
9天前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
191 100
|
9天前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
206 99
|
12天前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
12天前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
2月前
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
214 92
|
3月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
221 14
|
7月前
|
数据处理
鸿蒙开发:ArkTs字符串string
字符串类型是开发中非常重要的一个数据类型,除了上述的方法概述之外,还有String对象,正则等其他的用处,我们放到以后得篇章中讲述。
312 19
|
7月前
|
Java 程序员
课时16:String字符串
课时16介绍了Java中的String字符串。在Java中,字符串使用`String`类表示,并用双引号定义。例如:`String str = &quot;Hello world!&quot;;`。字符串支持使用“+”进行连接操作,如`str += &quot;world&quot;;`。需要注意的是,当“+”用于字符串与其他数据类型时,其他类型会先转换为字符串再进行连接。此外,字符串中可以使用转义字符(如`\t`、`\n`)进行特殊字符的处理。掌握这些基本概念对Java编程至关重要。