#include <iostream> using namespace std; char * trim(char * str); int main() { char s[1024]; // 定义存储字符串的一维字符数组 // 输入一行字符,可以包含空格 // 输入的字符串存入s中,最多读取个字符,后面自动加上'\0' cin.getline(s,1024); cout << trim(s) << endl; // 输出去掉首尾空格后的字符串 return 0; } //请在此添加函数trim()的实现 ..........
时间: 2024-01-30 09:02:13 浏览: 122
以下是函数 trim()
的实现:
char* trim(char* str)
{
int len = strlen(str); // 获取字符串长度
int left = 0, right = len - 1; // 初始化左右指针
// 从左到右扫描字符串,去掉左侧空格
while (left <= right && isspace(str[left]))
{
++left;
}
// 从右到左扫描字符串,去掉右侧空格
while (right >= left && isspace(str[right]))
{
--right;
}
// 将去掉空格后的子串拷贝到原字符串的开头
int new_len = right - left + 1;
memmove(str, str + left, new_len);
str[new_len] = '\0';
return str;
}
该函数的作用是去掉输入字符串 str
的首尾空格,并返回去掉空格后的字符串。具体实现过程如下:
- 计算字符串长度
len
,初始化左右指针left
和right
; - 从左到右扫描字符串,去掉左侧空格,直到左指针指向第一个非空格字符;
- 从右到左扫描字符串,去掉右侧空格,直到右指针指向第一个非空格字符;
- 计算去掉空格后的子串长度
new_len
,将该子串拷贝到原字符串的开头,最后在原字符串结尾处添加一个空字符'\0'
; - 返回去掉空格后的字符串
str
。
相关推荐













