C语言字符串中字符逆序输出但不改变字符串中的内容
时间: 2024-12-29 22:35:05 浏览: 43
在C语言中,如果你有一个字符串,并想要逆序输出其中的字符但不改变原始字符串的内容,你可以通过创建一个新的字符数组来完成这个任务。以下是简单的步骤:
1. 首先,你需要获取字符串的长度,可以使用`strlen()`函数。
2. 然后,创建一个新的足够大的字符数组,它的大小应该是原字符串长度加1(为了放上结束符'\0')。
3. 使用两个指针,一个指向原始字符串的开始,另一个指向新数组的结尾。
4. 循环遍历原始字符串,每次将当前字符复制到新数组的相应位置,同时移动指针。注意,由于是从后往前复制,所以需要逐个减小第一个指针的位置。
5. 当所有字符都复制完成后,记得在新数组末尾加上`\0`。
下面是一个示例代码片段:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
char reversed[ strlen(str) + 1 ]; // 新数组用于存储逆转后的字符串
int src = 0; // 原始字符串指针
int dest = strlen(reversed) - 1; // 新数组末尾
while (src < strlen(str)) {
reversed[dest] = str[src]; // 将字符从原字符串复制到新数组
src++;
dest--;
}
reversed[dest] = '\0'; // 结束符
printf("Reversed string: %s\n", reversed);
}
int main() {
char str[] = "Hello, World!";
reverse(str);
return 0;
}
```
运行此程序,它会输出:`!dlroW ,olleH`。
阅读全文
相关推荐

















