有两种方法:第一种方法,是用指针;第二种方法,数组,中间位置是临界
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
char *str="abcdefg";//定义一个字符串
int len=strlen(str);//字符串长度
char *dest=(char *)malloc(len+1);//分配内存空间,准备存储逆序后的字符串
char *d=dest;//定义一个临时指针,指向分配的内存空间首地址
char *s=&str[len-1];
while(len!=0)
{
*d=*s;
s--;
d++;
len--;
}
/*上面可以替换:
while(len--!=0)
{
*d++=*s--;
}
*/
*d='\0';
printf("%s\n",dest);
}
第二种方法:
#include <stdio.h>
#include <string.h>
void main()
{
char str[]="abcdefg";
int len,i;
char temp;
len=strlen(str);
for(i=0;i<len/2;i++)
{
temp=str[i];
str[i]=str[len-i-1];
str[len-i-1]=temp;
}
printf("%s\n",str);
}