C语言实现字符串逆序输出

键盘输入一个字符串,实现逆序输出。

刚看到题的时候想到了交换两边的字符,然后实现逆序输出,但是有思路却不知道怎么来实现。通过在CSDN里面搜索,看了别人对这个题的实现,才豁然开朗,然后关了CSDN界面,自己动手在VSCode里面写,中间还碰到了一些问题,像是遍历输出字符的时候会忘记[],定义字符数组的时候没有初始化导致输出的时候有乱码,使用fgets函数获取输入后输出的时候会把换行符也打印出来等等,这些问题也都尽可能地解决了,有所收获。

下面是我写的代码:

#include <stdio.h>
#include <stdlib.h>
//逆序输出一个字符串
//方法1:从后往前输出
void f1(){
    char str[20]={'\0'};
    int i;
    printf("请输入一个字符串:");
    //fgets(str , sizeof(str) , stdin);//多输出一个换行符
    gets(str);
    printf("字符串逆序输出:");
    //从字符串倒数第二个字符开始逆序输出,最后一个为'\0'
    for(i=sizeof(str)/sizeof(str[0])-1;i>=0;i--){
        printf("%c",str[i]);
    }
    printf("\n");
}
//方法2:两端交换后输出
void f2(){
    char str[20]={'\0'};
    int i , j , k;//k为中间变量,用于字符串两端字符交换
    printf("请输入一个字符串:");
    //fgets(str , sizeof(str) , stdin);//多输出一个换行符
    gets(str);
    printf("字符串逆序输出:");
    i=0;//字符串第一个字符
    j=(sizeof(str)/sizeof(str[0]))-1;//字符串倒数第二个字符,最后一个为'\0'
    //从两端开始向内交换字符
    while(i<j){
        k=str[i];
        str[i]=str[j];
        str[j]=k;
        i++;
        j--;
    }
    //字符串遍历输出
    for(i=0;i<20;i++){
        printf("%c",str[i]);
    }
    printf("\n");
}
int main(){
    f1();
    f2();
    system("pause");
    return 0;
}

在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值