程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 南開百題難題破解(2)

南開百題難題破解(2)

編輯:C++入門知識

題目要求: 輸入一個英文句子,翻轉句子中的單詞順序。但單詞內的順序不變。句子中單詞空格隔開。 為簡單起見,標點符號和普通字母一樣處理。 例如輸入"I am a student.",則輸出 student. a am I 題目解答: [cpp]   void StrOL(void)   {       int i,j,len;       int start=0,end=0;       char buf;       for (i=0; i<maxline; i++)       {           len=strlen(xx[i]);           //該循環的作用是將行數據中的非字母數據置為空格字符,例如i am a student.運算後為i am a student t後含有空格           for (j=0; j<len; j++)           {               if (!isalpha(xx[i][j]) && xx[i][j]!=' ')               {                   xx[i][j] = ' ';               }           }           strrev(xx[i]);//字符串倒置函數,將該行數據整體進行倒置,變為 tneduts a ma i           //該段程序的作用是將以空格分隔的小字符串進行倒置           for(j=0;j<len;j++)           {               if(isalpha(xx[i][j]))               {                   start=j;//此時start指針指向t                   while(isalpha(xx[i][j]))j++;                   end=j-1;//此時end指針指向s                   while(start<end)                   {  www.2cto.com                     buf=xx[i][start];                       xx[i][start]=xx[i][end];                       xx[i][end]=buf;                       start++;                       end--;                   }               }           }       }   }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved