C 去除 字符串两边的空字符

本文分享了一段在国外网站发现的C语言代码,该代码用于去除字符串两端的空白字符,实现方式简洁高效。通过循环遍历和字符复制实现了字符串的原地处理。

今天在一国外网站上, 看到下面的代码, 觉得挺精简. 

char *tr ( char *s )
{
  int i = 0;
  int j = strlen ( s ) - 1;
  int k = 0;
 
  while ( isspace ( s[i] ) && s[i] != '\0' )
    i++;
 
  while ( isspace ( s[j] ) && j >= 0 )
    j--;
 
  while ( i <= j )
    s[k++] = s[i++];
 
  s[k] = '\0';
 
  return s;
}


<think>我们正在处理用户的问题:如何使用Python去除字符串两边空格,特别是使用strip方法。根据引用,strip方法可以去除字符串两端的空格(默认)或指定字符。步骤:1.介绍strip方法的基本用法。2.提供示例代码。3.根据引用,还可以提及lstrip和rstrip方法,用于去除左端或右端的空格。4.注意引用中提到的其他方法(如使用join和列表推导)不是用户直接要求的,但可以简要提及作为补充。用户问题明确要求使用strip方法,因此我们主要展示strip方法。引用说明:[^1]:介绍了strip方法的基本语法:string.strip(),用于删除开头和结尾的空格。[^2]:说明strip方法去除字符串两端的指定字符(默认为空格),返回新字符串。[^3]:展示了strip、lstrip、rstrip的使用,以及一个使用join和列表推导去除字符串中所有空格的例子(但用户只要求两端空格,所以这个不是重点)。[^4]:提供了strip方法的语法和参数说明,以及一个例子。[^5]:同样说明了strip函数的使用,不传入参数则去除两端空格,传入字符则去除指定字符。因此,我们将按照以下结构回答:1.解释strip方法的作用。2.给出基本语法。3.展示去除两端空格的示例。4.可选:展示去除指定字符的示例(因为用户只要求空格,但作为扩展)。5.可选:简要介绍lstrip和rstrip。注意:用户问题中要求的是“去除字符串两边空格”,所以我们重点在空格去除。由于引用中提供了多个示例,我们选取一个简单的示例即可。示例代码可以来自引用[3]或[4],但需要调整以符合用户要求(仅两端空格)。我们编写如下:</think>### Python中使用`strip()`方法去除字符串两端空格 在Python中,去除字符串两端的空格最简洁的方法是使用字符串内置的`strip()`方法。该方法会**返回一个移除原字符串两端空白字符的新字符串**(包括空格、换行符`\n`、制表符`\t`等)。以下是详细说明: #### 1️⃣ 基础语法 ```python 新字符串 = 原字符串.strip() ``` #### 2️⃣ 示例代码 ```python # 示例1:去除普通空格 text = " Hello World! " result = text.strip() print(f"处理前: '{text}'") # 输出:处理前: ' Hello World! ' print(f"处理后: '{result}'") # 输出:处理后: 'Hello World!' # 示例2:去除混合空白字符(含制表符和换行符) text2 = "\n\t Python编程 \t\n" print(f"处理前: '{text2}'") # 输出:处理前: '\n\t Python编程 \t\n' print(f"处理后: '{text2.strip()}'") # 输出:处理后: 'Python编程' ``` #### 3️⃣ 关键特性 - **默认行为**:不传参数时移除**所有两端空白字符**(包括空格、`\t`, `\n`, `\r`等)[^2][^5] - **原地操作**:不修改原字符串字符串不可变),返回新字符串 - **效率优势**:比正则表达式或循环遍历更高效[^1][^4] #### 4️⃣ 扩展方法 - `lstrip()`:仅移除**左侧**空白字符 - `rstrip()`:仅移除**右侧**空白字符 - 移除指定字符(非空白): ```python "###数据###".strip('#') # 输出:'数据' ``` > ⚠️ 注意:若需移除字符串**内部**空格(非两端),需配合其他方法如`replace()`或正则表达式[^3]。 --- ### 相关问题 1. `strip()`方法与`replace()`在去除空格时有何本质区别? 2. 如何用Python高效去除字符串中**所有空格**(包括内部)? 3. 为什么`strip()`处理中文与英文字符串时行为可能不同? 4. 哪些场景下`strip()`可能意外移除有效字符?如何避免? [^1]: 使用Python中的strip方法去除字符串中的空格。在Python中,strip方法是字符串对象的一个内置方法,可以用来删除字符串开头和结尾的空格。 [^2]: Python中的strip方法是用于去除字符串两端的指定字符(默认为空格字符)的函数。它返回一个新的字符串。 [^3]: python学习之去除字符串中的空格(6种方法)。在处理Python代码字符串的时候,我们常会遇到要去除空格的情况。 [^4]: strip()方法返回所有字符从开始及字符串的末尾(默认空格字符)被去除后的字符串的一个副本。 [^5]: 当不传入任何参数时,strip()函数将默认去除字符串两端的空格。当传入指定的字符时,strip()函数将会去除字符串两端出现的这些指定字符。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值