#define _CRT_SECURE_NO_WARNINGS 1
//第一种方法
#include<stdio.h>
#include<string.h>
int main()
{
char a[] ="abcdefg";
int sz = sizeof(a) / sizeof(a[0]);//求出数组中的元素个数
printf("%d\n", sz);
int left = 0;
int right = sz-2;//数组下标从0开始并且sizeof求数组元素个数时'\0'没有被省略,所以是sz-2
//int right=strlen(a)-1;另外一种写法
char tmp;
while(left <right)//当左下标小于右下标时左右元素调换
{
tmp = a[left];
a[left] = a[right];
a[right] = tmp;
left++;
right--;
}
printf("%s\n", a);
return 0;
}
//第二种方法
#include<stdio.h>
#include<string.h>
int my_strlen(char a[])//char* str
{
int count = 0;
int i = 0;
for (i = 0; a[i]!= '\0'; i++)
{
count++;
}
/*int count = 0;
while (*str != '\0')
{
count++;
str++;
}*/
return count;
}
void reverse(char a[],int left,int right)
{
if (left < right)
{
char t = a[left];
a[left] = a[right];
a[right] = t;
reverse(a, left + 1, right - 1);
}
}
int main()
{
char a[] = "abcdefg";
/*printf("%d\n", my_strlen(a));*/
int left = 0;
int right = my_strlen(a) - 1;
reverse(a, left, right);
printf("%s\n", a);
return 0;
}
代码是从b站鹏哥c语言中学到的,稍微修改了一下。