字符串逆序

文章介绍了两种在C语言中实现字符串逆序的方法。第一种方法是通过创建两个数组,将原字符串的字符逐个反向复制到新数组中。第二种方法是创建一个函数,利用指针交换字符串首尾字符,直到整个字符串逆序。这两种方法都实现了字符串的反转功能。
摘要由CSDN通过智能技术生成
  • 方法一:创建两个数组,第一个用来存放需要逆序的字符串,第二个用来接收逆序之后的字符串

#include<stdio.h>
#include<string.h>
int main()
{
    char arr1[20] = { 0 };//数组1
    char arr2[20] = { 0 };//数组2
    int i = 0;
    int len = 0;
    gets(arr1);        //gets函数 输入我们需要逆序的字符串
    len = strlen(arr1);//strlen函数用来计算字符串的长度(strlen计算字符串长度时,遇到"\0"停止,计算                          出的结果不包含“\0”)
    for (i = 0; i < len; i++)   //使用循环将数组1中的字符按照从右向左的顺序分别放入数组2
    {
        arr2[i] = arr1[len - i-1];
    }
    for (i = 0; i <=len; i++)//遍历数组2 将逆序后的字符串打印出来
    {
        printf("%c", arr2[i]);
    }
}

方法二:创建函数,交换字符串中的字符

#include<stdio.h>
#include<string.h>
reverse(char *arr)//
{
    char* left = arr;//数组传参 传的为首个字符的地址,所以*left就是字符串中的第一个字符
    char* right = arr + strlen(arr) - 1;//*right为字符串的最后一个字符,因为下标从0开始的,所以需                                          要我们减一才能得到最后一个字符
    while (left < right)
    {
        char tmp = *left;    //使用tmp存放第一个字符
        *left = *right;      //将最后一个字符放到字符串的第一个位置
        *right = tmp;        //将存放在tmp中的第一个字符放到字符串的末尾
        left++;              //循环交换第二个和倒数第二个,一直循环到全部交换完成
        right--;             //在这里需要要明白如果字符串为偶数,全部交换完成,如果为奇数,中间的不                               动,交换两边;列如:abcdef 交换后为fedcba;abcde交换后为fecba
    }
}

int main()
{
    char arr[20] = { 0 };  //创建数组
    gets(arr);             //gets函数 输入我们需要逆序的字符串
    int a = strlen(arr);   //计算字符串的长度
    reverse(arr);       
    for (int i = 0; i < a; i++)//遍历数组2 将逆序后的字符串打印出来
    {
        printf("%c", arr[i]);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值