用 C 语言模仿 Python 的 strip() 函数

2023-11-23

我最近开始用 C 语言开发一个小玩具项目,并且一直在摸索模仿 python 字符串对象的 strip() 功能的最佳方法。

阅读 fscanf 或 sscanf 发现字符串被处理到遇到的第一个空格。

fgets 也没有帮助,因为我仍然有换行符。 我确实尝试使用 strchr() 来搜索空格并将返回的指针显式设置为 '\0' 但这似乎不起作用。


Python 字符串'strip方法删除尾随和前导空格。当处理 C“字符串”(字符数组,\0 终止)时,问题的两部分非常不同。

对于尾随空格:设置指向现有尾随 \0 的指针(或等效索引)。继续递减指针,直到它碰到字符串的开头或任何非白色字符;将 \0 设置在此终止向后扫描点之后。

对于前导空格:设置一个指向字符串开头的指针(或等效索引);继续递增指针,直到遇到非白色字符(可能是尾随 \0); memmove 字符串的其余部分,以便第一个非白色转到字符串的开头(对于后面的所有内容也类似)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用 C 语言模仿 Python 的 strip() 函数 的相关文章

随机推荐

  • Resharper Intellisense 可以配置为按字母顺序排序吗?

    我最近更新为使用 VS2013 和 Resharper 8 2 从 VS2010 和 Resharper 6 并发现了一个非常烦人的 feature 因为 Resharper 的智能感知不会按字母顺序对类成员进行排序 举例来说 我有一个名为
  • .NET 中的自定义文化感知日期格式

    在 NET 中 用于格式化 DateTime 值的大多数标准字符串都是区域性感知的 例如 ShortDatePattern d 格式字符串根据当前区域性切换年 月 日部分的顺序 6 15 2009 1 45 30 PM gt 6 15 20
  • PHP 作为 FastCGI 应用程序运行 (php-cgi) - 如何发出并发请求?

    编辑 更新 向下滚动 编辑2 更新 问题已解决 Some background information 我正在用 Java 编写自己的网络服务器 几天前我询问 Apache 与 PHP 的接口到底如何 这样我就可以实现 PHP 支持 我了解
  • .NET 中工作线程和 I/O 线程的简单描述

    在 NET 中很难找到工作线程和 I O 线程的详细但简单的描述 我对这个主题的了解很清楚 但技术上可能不准确 工作线程是这样的线程should使用 CPU 来完成工作 I O 线程 也称为 完成端口线程 should使用设备驱动程序来完成
  • 如何在 Numpy/MatplotLib 中可视化线性规划(具有任意不等式)的可行区域?

    我需要实现线性规划问题的求解器 所有限制都是 5x 10y 这些限制可以是任意数量的 另外 x gt 0 y gt 0 隐式 我需要找到最佳解决方案 最大值 并在 matplotlib 中显示可行区域 我通过实施单纯形法找到了最佳解决方案
  • Unwind Segue 在 Swift 3 和 iOS 10 中不起作用

    我正在尝试在 iOS 10 和 Swift 3 中测试 unwind segue I made a simple app like this 我添加了 segue 的代码TableViewController类并连接 取消 按钮并退出表视图
  • 从文本文件中删除^M字符的Shell命令[重复]

    这个问题在这里已经有答案了 可能的重复 删除 Unix 中的回车符 我正在读取外部第三方生成的一些数据 我注意到文件中的 ASCII 文本中散布着 M 字符 我认为这是 ASCII 中的字符 13 表示不带换行符的回车符 是否有一个行可以用
  • 如何在android中使用SharedPreference存储图像?

    我想使用 SharedPreference 在 android 中保存图像 我有两个活动类 当我单击第一个活动的按钮时 它将调用第二个活动 第二个活动在列表视图中显示我的首选名称 并将 Android 壁纸重置为我设置为首选壁纸的图像在第一
  • 将字符串列表作为 Airflow 中相关任务的参数传递

    我正在尝试通过以下方式将字符串列表从一个任务传递到另一个任务XCom但我似乎无法将推送列表解释回列表 例如 当我在某些函数中执行此操作时blah这是运行在ShortCircuitOperator paths gs format bucket
  • 获取 SoundCloud API 客户端 ID

    从浏览器访问我的轨迹时遇到问题 通常我在浏览器中输入此链接来访问可下载的曲目 http api soundcloud com tracks 294324164 download client id 02gUJC0hH2ct1EGOcYXQI
  • 将 google adsense 与 React + React Router 结合使用

    我正在尝试将 Google Adsense 集成到我的 React 网站中 但遇到了问题 为了在我的网页上投放广告 我已将此脚本标记包含在head我的 html 文件 这些广告被包装在一个简单的组件中 如下所示 export default
  • 关于使用 std::less 和 std::greater 与 std::sort 的混淆

    在C语言中 排序通常实现如下例 include
  • 为什么 NaN 不是有限的?

    测试isFinite函数我看到NaN is an infinite数 即使是不是一个数字 isFinite NaN returns false 这背后的逻辑是什么 为什么不是NaN finite 正如戴夫 牛顿所说 NaN 不是一个数字 然
  • Jenkins Gradle 集成:调用 Gradle 与使用 Gradle Wrapper 选项

    我刚刚开始在我的项目中使用 Jenkins for CI 和 Gradle 构建工具 I found 使用 Gradle 和 Jenkins 构建持续交付管道我不明白为什么作者建议 始终使用包装器 c 编号 120幻灯片 为什么这比直接涉及
  • 在全局范围内重新定义指针

    In 这个问题我对 C 的这个看似基本的方面感到非常困惑 考虑这两行代码 int ptr ptr 2 gcc 将发出以下警告 main cpp 4 1 warning data definition has no type or stora
  • Google 地图 API v3 放置搜索 - 将另一个参数传递给回调函数

    我正在使用 Google 地图地方 API v3 返回许多 类型 的地点 每个地点由地图上的不同标记表示 我创建一个 google maps places PlacesService 对象 然后为每个地点类型调用一次 搜索 方法 每次 我都
  • 异步任务 获取 VS HttpResponseMessage 获取

    我需要您在以下方面提供帮助 近一个月来 我一直在阅读有关 Tasks 和 async 的内容 我想尝试在一个简单的 Web API 项目中应用我新获得的知识 我有以下方法 并且它们都按预期工作 public HttpResponseMess
  • 如何在 PHP 中解析和处理 HTML/XML?

    如何解析 HTML XML 并从中提取信息 Answer recommended by PHP Collective 原生 XML 扩展 我更喜欢使用其中之一原生 XML 扩展因为它们与 PHP 捆绑在一起 通常比所有第 3 方库更快 并为
  • 比较 android 中的语音 wav 或语音标签(语音命令)API

    我正在开发一个应用程序 我需要某种方法来比较两个语音是否匹配 我知道语音识别器是一种方法 但因为 我认为 它需要首先将语音转换为字符串 所以除了语音识别器支持的语言之外 不太适合其他语言 有什么想法吗 就像过去的电话一样 语音标签只是将语音
  • 用 C 语言模仿 Python 的 strip() 函数

    我最近开始用 C 语言开发一个小玩具项目 并且一直在摸索模仿 python 字符串对象的 strip 功能的最佳方法 阅读 fscanf 或 sscanf 发现字符串被处理到遇到的第一个空格 fgets 也没有帮助 因为我仍然有换行符 我确