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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。

發(fā)布時間:2024/1/1 编程问答 29 豆豆

壓縮規(guī)則:
1、僅壓縮連續(xù)重復出現(xiàn)的字符。比如字符串”abcbc”由于無連續(xù)重復字符,壓縮后的字符串還是”abcbc”。
2、壓縮字段的格式為”字符重復的次數(shù)+字符”。例如:字符串”xxxyyyyyyz”壓縮后就成為”3x6yz”。
要求實現(xiàn)函數(shù):
void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);
【輸入】 pInputStr: 輸入字符串
lInputLen: 輸入字符串長度
【輸出】 pOutputStr: 輸出字符串,空間已經(jīng)開辟好,與輸入字符串等長;
【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出
示例
輸入:“cccddecc” 輸出:“3c2de2c”
輸入:“adef” 輸出:“adef”
輸入:“pppppppp” 輸出:“8p”

#include <stdio.h> #include <string.h>#define LEN 100void stringZip(char *pInputStr, long lInputLen, char *pOutputStr) {char *p = pInputStr;int num = 1;int i = 0;int size;int temp;int j;while(*p != '\0'){while(*p == *(p + 1) && *p != '\0'){num++;p++; }if(num > 1){size = 0;temp = num;while(num){size++;num /= 10;}num = 1;for(j = size; j > 0; j--){pOutputStr[i + j - 1] = '0'+ temp % 10;temp /= 10;}i += size;pOutputStr[i++] = *p;p++;}else{pOutputStr[i++] = *p;p++;}}pOutputStr[i] = '\0'; }int main() {char pInputStr[LEN];char pOutputStr[LEN];printf("please input the string:\n");scanf("%s",pInputStr);stringZip(pInputStr, strlen(pInputStr), pOutputStr);printf("%s\n",pOutputStr);return 0; }

總結

以上是生活随笔為你收集整理的通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。