写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

本文介绍了如何使用C语言实现字符串反转,并通过比较scanf和gets函数在输入字符串时的不同特性。着重讲解了gets函数的用法及其与scanf的区别,包括输入结束条件和返回值解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码:

#include <stdio.h>
#include <string.h>
#define N 20
int main() {
    void avert(char str[]);
    char str[N];
    printf("请输入字符串:\n");
    //scanf("%s",str);以空格断
    gets(str);
    avert(str);
    printf("字符串反序结果为:\n");
    puts(str);
    return 0;
}
void avert(char str[]) {
    char temp;
    int i,j;
    int len=strlen(str);
    //  printf("%d\n",len);
    for(i=0,j=len-1; i<len/2; i++,j--) {
        temp=str[i];
        str[i]=str[j];
        str[j]=temp;
    }
}

运行结果:
在这里插入图片描述
scanf和puts区别:

  1. gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束。
  2. scanf把末尾回车符保留在缓存中。gets接收回车,但把末尾回车符替换为\0。
  3. 返回值不同,gets的返回值为char*型,当读入成功时会返回输入的字符串指针地址,出错时返回NULL;scanf返回值为int型,返回实际成功赋值的变量个数,当遇到文件结尾标识时返回EOF。
  4. gets函数仅用于读入字符串;scanf为格式化输出函数,可以读入任意C语言基础类型的变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值