C++用指针实现倒序输出字符串
时间: 2023-08-29 18:08:36 浏览: 158
可以使用指针来实现字符串倒序输出的功能,代码如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void reversePrint(char *str)
{
int len = strlen(str);
char *p = str + len - 1;
while (p >= str) {
cout << *p;
p--;
}
}
int main()
{
char str[100];
cin.getline(str, 100);
reversePrint(str);
return 0;
}
```
首先,我们计算出字符串的长度 len,然后用一个指针 p 指向字符串的最后一个字符,即 `str + len - 1`,然后从后向前遍历字符串,依次取出每个字符并输出即可。
注意,这里用到了指针的算术运算,即指针加减整数得到的仍然是指针。指针 p 初始化时指向字符串的最后一个字符,每次循环结束后将 p 减一,指向前一个字符。
相关问题
在c++中使用指针进行字符串倒序
在C++中,由于C++标准库中没有直接提供字符串的倒序方法,我们需要借助指针或者迭代器来实现这个功能。一种常见的做法是使用字符指针和两头指针法。下面是一个简单的示例:
```cpp
#include <iostream>
void reverseString(char* str) {
char* start = str;
char* end = str + strlen(str) - 1; // 获取字符串结尾
while (start < end) {
std::swap(*start, *end); // 交换当前指针指向的字符
start++; // 移动起始指针
end--; // 移动结束指针
}
}
int main() {
char str[] = "Hello, World!";
reverseString(str);
std::cout << str << std::endl; // 输出 "!dlroW ,olleH"
return 0;
}
```
在这个例子中,我们通过两个指针`start`和`end`同时从字符串的两端开始,每次交换它们所指向的字符,直到相遇。
C++利用字符指针将一串字符倒序存放后输出。例如原数组a的内容为“VISUAL C++PROGRAM”,倒序后数组a中的内容为“MAGORP++C LASUIV”
可以使用以下代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[] = "VISUAL C PROGRAM";
int len = strlen(a);
char *p = new char[len + 1]; // 创建字符指针p,长度为len+1
for (int i = 0; i < len; i++)
p[i] = a[len - i - 1]; // 倒序存放
p[len] = '\0'; // 在末尾添加'\0'
cout << p << endl; // 输出倒序后的字符串
delete[] p; // 释放内存
return 0;
}
```
输出结果为:
```
MAGORP C LASUIV
```
阅读全文