//有一个字符数组的内容为:"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://cxhlcq.com/article/piodep.html