#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:去掉字符串首尾空格 // 参数:str-字符指针,指向输入的字符串 // 返回值:字符指针,指向去掉首尾空格后的字符串(首地址) // 提示:可以直接在字符串str中操作 char * trim(char * str) { // 请在此添加代码,实现函数trim /********** Begin *********/ int l = 0; char *ptr = str; while (*ptr != '\0') { ptr ++ , l ++ ; } int bg; for (int i = 0; i < l; i ++ ) if (str[i] != ' ') { bg = i; break; } for (int i = l - 1; ~i; i -- ) if (str[i] != ' ') { str[i + 1] = '\0'; break; } return &str[bg]; /********** End **********/ }解释这段代码
时间: 2023-07-23 14:12:20 浏览: 106
使用include <iostream>时一定要加using namespace std
这段代码实现了一个函数`trim`,用于去除字符串首尾的空格。
1. 在`main`函数中,首先声明了一个字符数组`s`,用于存储输入的字符串。然后使用`cin.getline`函数从标准输入读取一行字符串,并将其存储到`s`中。
2. 接下来调用`trim`函数,并将`s`作为参数传递给它。`trim`函数会去除`s`字符串的首尾空格,并返回去除空格后的字符串的首地址。
3. 最后,在`main`函数中,将去除空格后的字符串打印输出。
下面是对`trim`函数的解释:
- `trim`函数的参数是一个字符指针`str`,指向输入的字符串。
- 在函数内部,首先使用一个循环计算字符串的长度,并将长度保存在变量`l`中。
- 接着,使用两个循环找到第一个非空格字符和最后一个非空格字符的位置。这样就确定了去除首尾空格后的字符串的起始位置和终止位置。
- 最后,在字符串的最后一个非空格字符之后添加一个空字符`\0`,以表示字符串的结束。
- 最后,返回去除空格后的字符串的首地址。
运行以上代码,输入一个包含首尾空格的字符串,程序将输出去除首尾空格后的字符串。例如,如果输入字符串为" hello world ",则输出为"hello world"。
阅读全文