c语言使输入的字符串逆序输出
时间: 2023-12-08 13:39:42 浏览: 244
以下是C语言实现输入字符串逆序输出的代码:
```c
#include <stdio.h>
#include <string.h>
void reverse(char* left, char* right) {
while (left < right) {
char tmp = 0;
tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main() {
char arr[100] = { 0 };
gets(arr); // 获取字符串
int len = strlen(arr); // 计算字符串长度,以求最后一位的地址
reverse(arr, arr+len-1); // 进行倒置
printf("%s\n", arr);
return 0;
}
```
相关问题
c语言用指针字符串逆序输出
在C语言中,如果你想要使用指针来逆序输出字符串,你可以创建两个指针,一个指向字符串的起始位置,另一个指向结束位置(即倒数第一个字符),然后交换它们所指的字符,并逐次向中间移动,直到两者相遇。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char* str) {
if (str == NULL || strlen(str) <= 1) { // 检查空字符串或单字符
return;
}
char* start = str; // 指向字符串开始
char* end = str + strlen(str) - 1; // 指向字符串结束
while (start < end) {
// 交换当前字符
char temp = *start;
*start = *end;
*end = temp;
// 移动指针
start++;
end--;
}
printf("逆序后的字符串: %s\n", str);
}
int main() {
char str[] = "Hello, World!";
reverse_string(str);
return 0;
}
```
当你运行这个程序,它会输出 "!dlroW ,olleH"。
c语言实现将字符串逆序输出
### C语言实现字符串逆序输出的方法
以下是通过C语言实现字符串逆序输出的一种常见方法,基于提供的引用内容以及标准编程实践:
```c
#include <stdio.h>
#include <string.h>
// 定义反向字符串函数
void reverseString(char *str) {
int length = strlen(str); // 获取字符串长度
for (int i = 0; i < length / 2; i++) { // 循环次数不超过字符串长度的一半
char temp = str[i]; // 存储当前字符到临时变量
str[i] = str[length - i - 1]; // 将最后一个未处理的字符放到当前位置
str[length - i - 1] = temp; // 将存储的字符放回最后位置
}
}
int main() {
char inputStr[100];
printf("请输入一个字符串: ");
fgets(inputStr, sizeof(inputStr), stdin);
inputStr[strcspn(inputStr, "\n")] = '\0'; // 去除输入中的换行符
reverseString(inputStr); // 调用反转函数
printf("逆序后的字符串为: %s\n", inputStr);
return 0;
}
```
上述代码实现了字符串的逆序功能。具体逻辑是从两端逐步向中间遍历字符串,并交换对应位置上的字符[^1]。
另一种方式可以通过指针操作来实现字符串的逆序输出,这种方法更加高效且直观:
```c
#include <stdio.h>
#include <string.h>
// 使用双指针法实现字符串逆序
void stringReversePointer(char *str) {
char *start = str; // 初始化指向字符串开头的指针
char *end = str + strlen(str) - 1; // 初始化指向字符串结尾的指针
while (start < end) { // 当两个指针相遇时停止
char temp = *start; // 保存起始处的字符
*start++ = *end; // 替换起始处的字符为结束处的字符,并移动指针向前
*end-- = temp; // 替换结束处的字符为之前保存的字符,并移动指针向后
}
}
int main() {
char arr[] = "HELLO WORLD";
stringReversePointer(arr); // 调用逆序函数
printf("逆序后的字符串为:%s\n", arr);
return 0;
}
```
此版本利用了双指针技术,分别从头和尾部开始逐次交换字符直到两指针交汇为止[^3]。
以上两种方法均能有效完成字符串的逆序输出任务,在实际应用中可根据需求选择合适的方式。
阅读全文
相关推荐













