zoukankan      html  css  js  c++  java
  • 字符串相同字符个数统计

    // test_min_max.cpp : 定义控制台应用程序的入口点。
    //实现字符串相同字符个数统计
    //
    //样例输入:ajkhhhk
    //样例输出:a1j1k1hhh3k1
    
    #include "stdafx.h"
    #include <string>
    #include <iostream>
    using namespace std;
    
    char *letter_count(char *str)
    {
        char *p=str;    //指向当前字符
        char *q=p+1;    //指向当前字符的下一个字符   他和前一个字符作比较
        int len=strlen(str);
        char *buf=new char[len+1];    //堆中申请内存空间
        int count=1;    //记录相同字符的个数
        while (*q)
        {
            if (*p==*q)
            {
                p++;
                q++;
                count++;
            }
            else
            {
                itoa(count,buf,10);
                int nbits=strlen(buf);    //记录要跳过的字符数
                strcat(buf,q);
                *q=0;                //将*q所指向的位置清零,buf指向的字符串将链接到此处,否则会连接到str的末尾
                strcat(str,buf);
                p=p+nbits+1;
                q=p+1;
                count=1;
            }
        }
        itoa(count,buf,10);
        strcat(str,buf);
        delete []buf;
        buf==NULL;
        return str;
    }
    
    int main()
    {
        //方法一
        char s1[10];
        cin>>s1;
    
        //方法二
        //string s1="aaab";  //s2=letter_count(&s1[0]);
    
        //方法三  
        //这种方法会报错,原因就是s1指向一个字符串常量,(不可改变内容)
        //所以在子函数中*q=0;        会报错
        //char *s1="aaab";
    
        char *s2=NULL;
        s2=letter_count(s1);
        cout<<s2<<endl;
        return 0;
    }
  • 相关阅读:
    利用@media screen实现网页布局的自适应
    js判断手机的左右滑动
    文档流
    对文本段落操作的一些细节
    简易菜单的制作
    jQuery Scroll Follow
    node 监听接口
    浏览器通知
    webSocket
    前端学习路线
  • 原文地址:https://www.cnblogs.com/audi-car/p/4438129.html
Copyright © 2011-2022 走看看