用指针实现,将字符串“C language programming”
时间: 2023-06-20 12:07:15 浏览: 71
转换成“programming language C”的形式,并输出结果。
以下是示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[] = "C language programming";
char *ptr1, *ptr2, *ptr3;
ptr1 = str;
ptr2 = strchr(str, ' '); // 找到第一个空格的位置
ptr3 = strrchr(str, ' '); // 找到最后一个空格的位置
*ptr3 = '\0'; // 在最后一个空格处截断字符串
cout << ptr2 + 1 << " "; // 输出 "language "
cout << ptr1 << " "; // 输出 "C"
cout << str << endl; // 输出 "programming"
return 0;
}
```
解释一下代码:
1. 首先定义字符串 `str`,并定义三个指针 `ptr1`、`ptr2`、`ptr3` 分别指向字符串 `str` 的开头、第一个空格的位置和最后一个空格的位置。
2. 将指针 `ptr1` 指向字符串 `str` 的开头,即第一个字符。
3. 使用函数 `strchr` 找到字符串 `str` 中第一个空格的位置,并将指针 `ptr2` 指向该位置。
4. 使用函数 `strrchr` 找到字符串 `str` 中最后一个空格的位置,并将指针 `ptr3` 指向该位置。
5. 在最后一个空格处截断字符串,即将最后一个空格处的字符改为字符串结束符 `\0`。
6. 输出结果,其中 `ptr2 + 1` 表示从第一个空格的下一个字符开始输出,因为要去掉空格,所以需要跳过第一个空格;`ptr1` 表示输出第一个空格前面的部分;`str` 表示输出最后一个空格后面的部分。
输出结果为:`language C programming`。