C++Primer第五版 5.5.2节练习

本文详细介绍了如何修改现有程序,使其仅识别并输出首字母为大写的重复单词。通过引入大写检查,提高了程序的精确度,确保了输出的单词满足特定条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习5.21:修改5.5.1节(第171页)练习题的程序,使其找到的重复单词必须以大写字母开头。
答案:见云盘程序。

练习5.21

/*
*2015/6/7
*练习5.21 
*功能:修改5.5.1节(第171页)练习题的程序,使其找到的重复单词必须以大写字母开头 
*作者:Nick Feng
*nickgreen23@163.com 
*/

#include <iostream>
#include <string>

using namespace std; 

int main()
{
    string word, nextword,saveword;
    int flag = 0;
    if (cin >> word)
    {
        while (cin >> nextword && nextword != "999")
        {
            if (word == nextword)
            {
                string &first = word;
                toupper(first[0]);
                cout << "saveword: " << word <<  endl; 
                flag = 1;
                break;  
            }
            else {
                word = nextword;
                flag = 2;
            }
        } 
    }
    if (flag == 2) cout << "No Finding" << endl;

    return 0;
}

练习5.21-2

/*
*练习5.21修正 
*2015/6/8 8:49 
*说明;昨天题目没看清,题目要求输入的连续重复的单词以大写字母开头才输出,而并非改成第一个字母为大写,完全两个意思
*作者:Nick Feng 
*邮箱:nickgreen23@163.com 
* 
*/

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string word, nextword;     
    int flag = 0;

    if (cin >> word)
    {
        while (cin >> nextword && nextword != "999") //以输入 999 结束 
        {
            if (nextword == word )
                {
                if (!isupper(word[0]))   
                //isupper() 参考书上82页 ,判断一个字符是否为大写 
                   //如果不是大写的,继续循环 
                else 
                    {
                    cout << "it is: " << word << endl; 
                    // 输出大写开头的连续重复的单词 
                    flag = 1;      
                    break;
                    }
                }
            else 
                {
                    word = nextword;
                    flag = 2;
                 }
        }
        if (flag == 2) cout << "No finding" << endl;
    }
    return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值