#include
#include
int main()
{
int i,pos;
char t;
char str[20] = {"abcde"};
char *p = str;
pos = strlen(str);
for(i = 0; i < pos/2; i++)
{
t = *(p+i);
*(p+i) = *(p+(pos-1-i));
*(p+(pos-1-i))=t;
}
fputs(str,stdout);
printf("\n");
return 0;
}
其它方法:
#include
#include
int main()
{
char *p,*q;
char t;
char str[20] = "gnorts ma I";
p = q = str;
while ('\0' !=*q)
{
q++;
}
q--;//这个while语句实现将指针q指向最后一个有效字符
while (p < q)
{
t = *p;
*p = *q;
*q = t;
p++ ;
q--;
}
fputs (str, stdout);
printf ("\n");
return 0;
}
char* Reverse(char*s)
{
// p指向字符串头部
char*p = s ;
// q指向字符串尾部
char*q = s ;
while(*q)
++q ;
q -- ;
// 交换并移动指针,直到p和q交叉
while(q > p)
{
chart = *p ;
*p++ = *q ;
*q-- = t ;
}
return s ;
}
#include
using namespace std;
void reverse_str(char *p,char *q)
{
int len=strlen(p);
int i;
for(i=0;i
*(q+len-i-1)=*(p+i);
}
*(q+len)='\0';
}
void main()
{
char a[100],b[100];
gets(a);
reverse_str(a,b);
cout<<"原来的串:"< cout<<"之后的串:"<}
不会