189 8069 5689

字符数组内容的逆序

//有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student".
//要求:
//不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
//
 
#include 
#include 
void fanw(char *left, char *right) //把每个单词单词翻转
{
 char* pleft = left;
 char* pright = right;
 char temp;
 while (pleft < pright)
 {
  temp = *pleft;
  *pleft = *pright;
  *pright = temp;
  pleft++;
  pright--;
 }
}
void fans(char *p)              //把翻转后的单词再翻转 
{
 while (*p != '\0')
 {
  char *pst = p;
  while (*p != '\0' && *p != ' ')
  {
   p++;
  }
  fanw(pst, p - 1);
  p++;
 }
}
int main()
{
 char p[30] = "student a am i";
 int len = strlen(p);
 printf("原字符串为 : %s\n", p);
 printf("翻转后的字符串为 :");
 fanw(p, p + len - 1);
 fans(p);
 printf("%s\n", p);
 return 0;
}

当前标题:字符数组内容的逆序
文章来源:http://cdxtjz.com/article/piodep.html

其他资讯