///<summary>
///单词反转
///</summary>
///<param name="array">待反转的字符串</param>
///<returns>已反转的字符串</returns>
///<author>Max Su</author>
publicstatic string ReverseWords(string array)
{
int arrLen = array.Length;
char[] strNew =new char[arrLen + 1];
//全部反转
for (int index = 0; index < arrLen; index++)
{
strNew[index] = array[arrLen - 1 - index];
}
strNew[arrLen] =' '; //为了复原最后一个单词,添加一个辅助空格
int iStart = 0, iEnd = 0;
char tmpChar;
//复原单词
for (int Index = 0; Index < arrLen + 1; Index++)
{
//Index指向空格
if (strNew[Index] ==' ')
{
iEnd = Index - 1;
while (iStart < iEnd)
{
tmpChar = strNew[iStart];
strNew[iStart] = strNew[iEnd];
strNew[iEnd] = tmpChar;
iStart++;
iEnd--;
}
iStart = Index + 1;//跳过空格
}
elseif (strNew[Index] == '!' | strNew[Index] == ',' | strNew[Index] =='.' | strNew[Index] == ';')
{
iStart = Index + 1;//跳过标点
}
}
//合成字符串
array = string.Empty;
for (int index = 0; index < strNew.Length - 1; index++ )//去掉辅助的空格
{
array += strNew[index];
}
return array;
}