[C++] hdoj1020简单的字符串处理 →→→→→进入此内容的聊天室

来自 , 2020-11-11, 写在 C++, 查看 102 次.
URL http://www.code666.cn/view/2f25f6e3
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4.  
  5. int main(){
  6.         string s1;
  7.         char ch[10005];
  8.         int m;
  9.         int count1 = 1;
  10.         int count2 = 0;
  11.         cin>>m;
  12.         for(int i = 0; i < m; i++){//依次处理每一行             
  13.                 count2 = 0;
  14.                 cin>>s1;
  15.                 if(s1.length() == 1){
  16.                         cout<<s1<<endl;
  17.                         continue;
  18.                 }
  19.                 for(int j = 1; j < s1.length(); j++){//依次处理每个字符        
  20.                         if(s1[j] == s1[j - 1]){
  21.                                 count1++;
  22.                         }else {
  23.                                 if(count1 > 1){
  24.                                         count2++;
  25.                                         //ch[count2 - 1] = (char)(count1 + 48);
  26.                                         char temp[10];
  27.                                         sprintf(temp, "%d", count1);//count1的值可能大于个位数
  28.                                         for(int k = 0; temp[k] != '\0'; k++, count2++){
  29.                                                 ch[count2 - 1] = temp[k];
  30.                                         }
  31.                                         count2--;
  32.                                 }                      
  33.                                 count2++;
  34.                                 ch[count2 - 1] = s1[j - 1];
  35.                                 count1 = 1;
  36.                         }
  37.                 }
  38.                 if(count1 != 1){
  39.                         count2++;
  40.                         //ch[count2 - 1] = (char)(count1 + 48);
  41.                         char temp[10];
  42.                         sprintf(temp, "%d", count1);
  43.                         for(int k = 0; temp[k] != '\0'; k++, count2++){
  44.                                 ch[count2 - 1] = temp[k];
  45.                         }
  46.                         count2--;//很多的count2++与count2--只是为了保持逻辑的直接性
  47.                         count2++;
  48.                         ch[count2 - 1] = s1[s1.length() - 1];
  49.                         count1 = 1;
  50.                 }else{
  51.                         count2++;
  52.                         ch[count2 -1] = s1[s1.length() - 1];
  53.                 }
  54.                 ch[count2] = '\0';
  55.                 cout<<ch<<endl;
  56.         }
  57. }

回复 "hdoj1020简单的字符串处理"

这儿你可以回复上面这条便签

captcha