日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

练习:压缩字符串和逆序英文语句

發布時間:2024/3/24 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 练习:压缩字符串和逆序英文语句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 壓縮字符串
    aaaabbbbcdefffffghhhh
    壓縮成a4b4cdef4gh4
  • // 壓縮字符串 // aaaabbbbcdefffffghhhh // a4b4cdef4gh4 #include <stdio.h> void yasuo(); void yasuo(char *pStr) {int len=0;if(pStr==NULL)return ;char *p1=pStr;//char *p2=pStr;while(*p1++){len++;}int i,j;p1=pStr;char *p2=pStr;for(i=0,j=0;i<len;i++){int count=1;while(p1[i]==p1[i+1]){count++;i++;}if(count>1){p2[j++]=p1[i];p2[j]=count+'0';//將count轉換成字符j++;}else {p2[j]=p1[i];j++;}}p2[j]='\0';int len2=0;printf("%s\n",p2);} int main() {char str1[]="aaaabbbcddddeffeeegghjjjj";yasuo(str1);return 0; }

    利用兩個指針來解決 一個進行遍歷一個進行替換。
    2: 單詞逆序
    You are from shanghai
    shanghai from are You

    實質是先將所有元素逆序再對單個單詞進行逆序,關鍵在于用指針記錄判斷邊界值,注意使用逆序函數的開始和結束位。

    #include <stdio.h> int strLen(); int strLen(char *pStr) {if(pStr == NULL)return -1;int len=0;while(*(pStr++)){ len++;}return len; } void reverse(); void reverse(char *pStr,int k,int e) {int tmp;//int left=0;//int right=strLen(pStr)-1;while(k<e){tmp=pStr[k];pStr[k]=pStr[e];pStr[e]=tmp;k++;e--;}} void reEnglish(); void reEnglish(char *pStr) {if(pStr == NULL)return ;char *p1=pStr;int len = strLen(pStr);reverse(p1,0,len-1);char *p2=p1;//char *p3=p2;int kai=0;int jie=0;int i;for(i=0;i<len;i++){if(p2[i]!=' '){jie++;}else{jie++;reverse(p2,kai,jie-2);printf("p2=====%s\n",p2);kai=jie;}}reverse(p2,kai,jie-1);printf("p2=====%s\n",p2);pStr=p2;} int main() {char str[100]="I am from shanghai";int len = strLen(str);//printf("len =%d\n",len);//reverse(str);printf("%s\n",str);//reverse(str,0,len-1);//printf("%s\n",str);reEnglish(str);printf("%s\n",str);return 0; }

    總結

    以上是生活随笔為你收集整理的练习:压缩字符串和逆序英文语句的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。