C/C++基础学习代码(2)

程序1.

/*
*编写程序定义一个vector对象,其每个元素都是指向string类型的指针,
*读取该vector对象,输出每个string的内容及其相应的长度。
*/

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main()
{
    vector<string *> strvec;
    string str;

    while(cin >> str)
    {
        string *pStr = new string(str);
        strvec.push_back(pStr);
    }

    for(vector<string *>::iterator iter = strvec.begin(); iter != strvec.end(); ++iter)
    {
        cout << **iter <<' '<< (**iter).size() << ' ' << endl;
    }

    for(vector<string *>::iterator iter = strvec.begin(); iter != strvec.end(); ++iter)
    {
        delete *iter;
    }
    return 0;
}
/*****输入*****
fretre
erw
rert
**************/
/*****输出*****
fretre 6 
erw 3 
rert 4 
**************/

程序2.

/*
*编写一个小程序,从标准输入读入一系列string对象,寻找连续重复出现的单词。
*程序应该找出满足以下条件的单词的输入位置:
*该单词的后面紧跟着再次出现自己本身。跟踪重复次数最多的单词及其重复次数。
*输出重复次数的最大值,若没有单词重复则输出说明信息。例如:如果输入是:
*how,now now now brown cow cow
*则输出表明now单词出现三次
*/

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string preStr, curStr, maxStr;
    int maxCount = 1, currentCount = 0;
    int totolStrCount =0;

    while(cin >> curStr)
    {
        totolStrCount++;
        if(totolStrCount == 1)
        {
            maxCount = 1;
            maxStr = curStr;
        }

        if(preStr == curStr)
        {
            currentCount ++;
            if(currentCount > maxCount)
            {
                maxCount = currentCount;
                maxStr = curStr;
            }
        }
        else
        {
            currentCount = 1;
            preStr = curStr;
        }

    }

    cout << maxStr << "  " << maxCount;
    return 0;
}
/*****输入*****
fretre
rewetr
rewetr
rewetr
erw
erwerw
erw
erw
erw
erw
erw
rrr
rrr
**************/
/*****输出*****
erw  5
**************/

猜你喜欢

转载自blog.csdn.net/walkerkalr/article/details/81152389