写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Reverse(char* str, int len);
int main()
{
char* str = (char*)malloc(101 * sizeof(char)); //为防止缓冲区溢出,采用动态内存分配创建字符串
if (str == NULL)
{
printf("Memory allocation failed.\n"); //若内存分配失败
return 1;
}
str[100] = '\0'; //定义数组并将其初始化为空字符
scanf("%s", str);
int len = strlen(str) - 1; //数组括号内数字最大值为其实际长度减一
Reverse(str, len);
for (int i = 0;i <= len;i++)
{
printf("%c", str[i]); //输出反序存放后的字符串
}
printf("\n");
free(str); //释放动态内存
return 0;
}
/*函数功能:逆转字符串*/
void Reverse(char* str, int len)
{
int left = 0;
int right = len;
while (left <= right) //交换字符串对应位置中的字符
{
char temp = str[left];
str[left] = str[right];
str[right] = temp;
right--;
left++;
}
}