当前位置: 首页 > article >正文

字符串逆序(c语言)



错误代码

#include<stdio.h>

//字符串逆序
void reverse(char arr[], int n)
{
    int j = 0;
    //采用中间值法
    //访问数组中第一个元素和最后一个元素
    //交换他们的值,从而完成了字符串逆序
    //所以这个需要临时变量
    for (j = 0; j <= n / 2; j++)
    {
        char temp = arr[j];
        arr[j] = arr[n - 1 - j];
        arr[n - 1 - j] = temp;
    }
    //直接打印整个数组
      printf("%s",arr);
}



int main()
{
    char arr[10000];
    int i = 0;
    //直接输入整个数组
    scanf("%s", arr);
    int sz = 0;
    //这个循环计算的是除了\0后这个数组元素的个数
    while (arr[sz] != '\0')
    {
        sz++;
    }
    //函数调用
    reverse(&arr, sz);
    return 0;
}
//

运行结果

为什么呢

因为scanf在读取输入时,不能读取空白字符(空格,制表符,换行符),遇到这些就会停止读取

所以到i就停止读取了

 知识引用:

gets函数和fgets函数的区别

正确代码

#include <stdio.h>
#include <string.h>

int main() 
{
    char str[10001];
    //读取键盘中输入的字符,包括空格
    //需要引头文件    
    fgets(str, 10001, stdin);
    int len = strlen(str);
    //因为fgets把\n读取了,所以需要去除\n的情况
    if (str[len - 1] == '\n') 
    {
        len--;
    }
    for (int i = 0; i < len / 2; i++) 
    {
       // 利用中间值进行交换
        char temp = str[i];
        str[i] = str[len - 1 - i];
        str[len - 1 - i] = temp;
    }
    //直接打印整个数组
    printf("%s\n", str);
    return 0;
}

程序运行



http://www.kler.cn/a/373783.html

相关文章:

  • 深入解析:Python中的特征工程——从入门到精通
  • Redis 主从同步 总结
  • 如何从CSV、JSON等格式创建DataFrame
  • Spring Boot 全面指南
  • Cyber​​Panel filemanager/upload 远程命令执行漏洞复现
  • el-dialog支持全局拖拽功能
  • 在Android开发中实现静默拍视频
  • 数智时代:以低代码开发为催化剂 加速中国制造转型升级
  • 适配器模式适用的场景
  • PostgreSQL用load语句加载插件
  • Spring 设计模式之装饰器模式
  • Vue组件学习 | 八、 v-bind指令
  • Spring Boot 集成 RabbitMQ
  • linux上使用scp从windows往linux传数据
  • 易优cms webshell
  • STM32 第17章 EXIT--外部中断/事件控制器
  • 【福建医科大学附属第一医院-注册安全分析报告】
  • nvm 版本管理工具
  • 【Python爬虫实战】网络爬虫的完整指南:基础、工作原理与实战
  • 成都云腾五洲科技“智联引擎”服务平台已发布
  • 明达云:赋能化工园区,智绘安全高效新蓝图
  • 道路安全员题库分享
  • Kafka 与传统 MQ 消息系统之间有三个关键区别?
  • MFC的SendMessage与PostMessage的区别
  • 「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio 插件安装与配置
  • C++ | Leetcode C++题解之第516题最长回文子序列