该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
void fun (char *ch1, char *ch2)
{
int i, n(0), k;
int length;
bool judge(true);
for (length = 0; *(ch1 + length) != '\0'; length ++);// 计算ch1长度
for (i = length - 1; i >= 0; i --)
{
if (*(ch1 + (length - 1)) == ' ' && judge)// 判断ch1末位是否有空格……
{
while (*(ch1 + i) == ' ')
{
*(ch2 + n ++) = ' ';
i --;
}
judge = false;
}
if (*(ch1 + i) == ' ')
{
for (k = i + 1; *(ch1 + k) != '\0'; k ++)// 将单词按反依次赋予ch2
{
if (*(ch1 + k) == ' ')
{
break;
}
*(ch2 + n ++) = *(ch1 + k);
}
while (*(ch1 + i) == ' ')// 将单词间空格赋予ch2……
{
*(ch2 + n ++) = ' ';
i --;
}
}
if (i == 0 && *(ch1 + i) != ' ')// ch1第一个单词
{
for (k = i; *(ch1 + k) != ' '; k ++)
{
if (*(ch1 + k) == '\0')
{
break;
}
*(ch2 + n ++) = *(ch1 + k);
}
}
}
*(ch2 + n ++) = '\0';
}
void main ()
{
char *p1, *p2, s1[50], s2[50];
p1 = s1;
p2 = s2;
printf ("输入:");
gets (p1);
fun (p1, p2);
puts (p2);
}