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

南開百題難題破解(1)

編輯:C++入門知識

題目要求: 從左到右依次掃描字符串str,把小寫字母o左邊的所有字符移到該串的右邊,並把該小寫字母o刪除,繼續掃描字符串str並做上述操作,直到字符串str中所有的小寫字母o被刪除為止。 解答如下: [cpp]   void StrOR(void)   {       int i,j,k=0;//定義三個變量,i表示行數,j表示列數,k指向每一行的第一個字符       int len;//用來存放每行的字符數       char buf[80];//用來存放臨時變換的行數據       char a=0;//行數據存放到臨時數組中時,用0字符清空該行數據       for(i=0;i<maxline;i++)       {           len=strlen(xx[i]);//獲得每行的字符數           j=0;           while(j<len)           {               if(xx[i][j]=='o')//判斷該字符是否為o               {                   xx[i][j]=0;//將字符o的位置用零替換,以便做字符串拷貝和連接時發揮作用,字符串連接函數和拷貝函數遇到零字符時將不再進行操作                   strcpy(buf,&xx[i][j+1]);                   /*                  strcpy函數:                  原型聲明:extern char *strcpy(char dest[],const char *src);                  功能:把從src地址開始且含有NULL結束符的字符串復制到以dest開始的地址空間,連字符串結束標志也一起copy.                  說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。                  返回指向dest的指針。                  */                   strcat(buf,xx[i]);                   /*                  strcat函數:                  原型:extern char *strcat(char *strDest, char *strSrc);                  功能:把strSrc所指字符串添加到strDest結尾處(覆蓋strDest結尾處的'\0')並添加'\0';                  說明:strSrc和strDest所指內存區域不可以重疊且strDest必須有足夠的空間來容納strSrc的字符串。                  返回指向strDest的指針. www.2cto.com                 */                   strset(xx[i],a);//將xx[i]該行數據清零,以便從臨時數組中獲得數據時不會發生錯誤                   strcpy(xx[i],buf);//將臨時數組中的數據拷貝到xx的行數組中                   len = len-j;//拷貝後的數據中後j個字符不會包含字符o                   j=0;//將j置為0,對新的數據重新進行操作               }               else               {                   j++;               }           }       }   }      

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