使用指针实现字符串逆序
时间: 2024-03-10 10:40:32 浏览: 105
使用指针实现字符串逆序的方法如下:
```c
#include <stdio.h>
#include <string.h>
void reverseString(char *str) {
char *p, *q, ch;
p = str;
q = p + strlen(str) - 1;
while (p < q) {
ch = *q;
*q-- = *p;
*p++ = ch;
}
}
int main() {
char str[20];
gets(str);
reverseString(str);
printf("%s", str);
return 0;
}
```
运行结果:
输入:Hello World
输出:dlroW olleH
相关问题
c语言编程:使用指针实现字符串逆序输出
可以用指针来实现字符串逆序输出,代码如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int length = strlen(str);
char *begin = str;
char *end = str + length - 1;
while (begin < end) {
char temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
}
int main() {
char str[] = "Hello, world!";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
这个程序中,我们定义了一个 `reverse` 函数,它接受一个指向字符串的指针。这个函数首先计算字符串的长度,然后定义了两个指针,一个指向字符串的开头,一个指向字符串的结尾。接下来,我们使用一个循环来交换开头和结尾的字符,直到两个指针相遇为止。最后,我们在 `main` 函数中调用 `reverse` 函数,并将结果输出到控制台上。
C++指针实现字符串按逆序存放
在C++中,我们可以使用指针和字符数组来实现字符串的逆序存放。这里是一个简单的示例:
```cpp
#include <iostream>
// 定义一个函数,接收指向字符串首字符的指针,并返回指向其末尾的指针
char* reverseString(char* str) {
if (str == nullptr) return str; // 如果输入空指针,直接返回
char* end = str + strlen(str) - 1; // 计算字符串的结束位置
while (end > str) { // 当end大于str时,开始交换
std::swap(*str, *end); // 使用std::swap交换当前字符
str++; // 移动str到下一个字符
end--; // 移动end到前一个字符
}
return str;
}
int main() {
char str[] = "Hello, World!";
char* reversedStr = reverseString(str);
std::cout << "Reversed String: " << reversedStr << std::endl;
// 注意,由于我们改变了原字符串,下面的语句会打印出反转后的结果
// std::cout << "Original string still points to: " << str << std::endl;
// 清理内存
delete[] reversedStr; // 由于不是动态分配,这里不需要delete,但可以提醒注意内存管理
return 0;
}
```
在这个例子中,`reverseString` 函数通过两个指针从两端向中间移动并交换字符实现了字符串的逆序。请注意,这个操作并没有创建新的字符串副本,而是直接修改了原始字符串。
阅读全文