/*****************************************/ /* 颠倒一个句子中的词的顺序*/ /*从后往前遍历即可,一次遍历就OK*/ /*****************************************/ #include <stdio.h> #include <stdlib.h> #include <string.h> int main () { char szTemp[] = "I am crise"; int nLen = strlen(szTemp) + 1; char *szTemp2 = new char[nLen]; memset(szTemp2, 0, nLen); int i = nLen - 1, nCount = 0; int nStart = i, nEnd = i; while (i >= 0) { if (szTemp[i] == ' ') { nStart = i; for (int j = nStart + 1; j < nEnd; ++j, ++nCount) { szTemp2[nCount] = szTemp[j]; } szTemp2[nCount++] = ' '; nEnd = nStart; } --i; } if (nEnd) { for (int i = 0; i < nEnd; ++i) { szTemp2[nCount++] = szTemp[i]; } } printf("[%s]/n", szTemp2); delete []szTemp2; return 0; }