Discuz! Board

 找回密码
 立即注册
查看: 388|回复: 1

2023.3.10

[复制链接]

20

主题

33

帖子

3458

积分

论坛元老

Rank: 8Rank: 8

积分
3458

小火马 Lv:11
发表于 2023-3-10 20:45:09 | 显示全部楼层 |阅读模式
void zifuyasuo()//字符串压缩
{
        char a[1000],b[1000];//存储输入
        int count1=1,cnt=0;//计数器
        gets(a);//没有空格
       
        for(int i=0;i<strlen(a);i++)
        {
                if(a[i]>='a'&&a[i]<='z'||(a[i]>='A'&&a[i]<='Z'))
                {
                        b[cnt]=a[i];
                        cnt++;
                }
        }
       
        cout<<b[0];//首字符单独处理
        for(int i=1;i<strlen(b);i++)
        {
                if(b[i]==b[i-1])//如果与前一个数相等
                {
                        count1++;//计数器+1
                }
                else//如果不相同
                {
                        if(count1>1)//如果计数器大于1
                        {
                                cout<<count1;//输出计数值
                                count1=1;//重置计数
                        }               
                        cout<<b[i];//输出当前字符
                }
               
                if((count1>1)&&(i==strlen(a)-1)) cout<<count1;//尾字符单独处理
        }
}
回复

使用道具 举报

20

主题

33

帖子

3458

积分

论坛元老

Rank: 8Rank: 8

积分
3458

小火马 Lv:11
 楼主| 发表于 2023-3-10 20:45:26 | 显示全部楼层
[C++] 纯文本查看 复制代码
void zifuyasuo()//字符串压缩 
{
	char a[1000],b[1000];//存储输入 
	int count1=1,cnt=0;//计数器 
	gets(a);//没有空格 
	
	for(int i=0;i<strlen(a);i++)
	{
		if(a[i]>='a'&&a[i]<='z'||(a[i]>='A'&&a[i]<='Z'))
		{
			b[cnt]=a[i];
			cnt++;
		}
	}
	
	cout<<b[0];//首字符单独处理 
	for(int i=1;i<strlen(b);i++)
	{
		if(b[i]==b[i-1])//如果与前一个数相等 
		{
			count1++;//计数器+1 
		}
		else//如果不相同 
		{
			if(count1>1)//如果计数器大于1 
			{
				cout<<count1;//输出计数值 
				count1=1;//重置计数 
			}		
			cout<<b[i];//输出当前字符 
		}
		
		if((count1>1)&&(i==strlen(a)-1)) cout<<count1;//尾字符单独处理 
	}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 02:14 , Processed in 0.050080 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表