C++练习题:字符串的拼接与分割

第一部分:考点与作答区

考点:

  • 字符串拼接
  • 字符串分割
  • 字符串处理函数(如 + 运算符,std::getline

作答区: 编写一个C++程序,完成以下要求:

  1. 定义一个字符串变量,并初始化为 "Hello, "。
  2. 通过输入获取一个字符串,并将其拼接到第一步定义的字符串后面。
  3. 将拼接后的字符串以逗号(,)为分隔符进行分割,并打印出分割后的字符串。

请在下方空白处编写代码:

// 在此处编写代码
第二部分:解题思路与答案

解题思路:

  1. 使用 std::string 类型来定义和操作字符串。
  2. 使用 + 运算符进行字符串拼接。
  3. 使用 std::getline 函数来从标准输入读取一行字符串。
  4. 使用 std::istringstreamstd::getline 函数来按逗号分割字符串。

答案:

#include <iostream>
#include <string>
#include <sstream>

int main() {
    // 初始化字符串
    std::string str = "Hello, ";
    
    // 获取输入并拼接
    std::string input;
    std::getline(std::cin, input);
    str += input;

    // 分割字符串并打印
    std::istringstream iss(str);
    std::string token;
    while (std::getline(iss, token, ',')) {
        // 去除可能的空白字符
        token.erase(0, token.find_first_not_of(' '));
        token.erase(token.find_last_not_of(' ') + 1);
        std::cout << token << std::endl;
    }

    return 0;
}

这段代码首先定义了一个字符串 str 并初始化为 "Hello, "。然后,它读取用户输入并使用 + 运算符将输入拼接到 str。接着,使用 std::istringstreamstd::getline 来按逗号分割字符串,并打印出每个分割后的字符串。

第三部分:扩展考点与扩展作答区

扩展考点:

  • 字符串中单词数量的统计
  • 字符串中特定字符的计数

扩展作答区: 在原有程序的基础上,增加以下功能:

  1. 统计分割后的字符串中单词的数量,并打印出来。
  2. 计算并打印出原字符串中特定字符(例如逗号,)出现的次数。

请在下方空白处编写代码:

// 在此处编写代码
第四部分:扩展解答思路与答案

扩展解答思路:

  1. 在分割字符串的过程中,通过增加一个计数器来统计单词的数量。
  2. 使用一个循环遍历原字符串,通过比较字符来统计特定字符(如逗号,)的出现次数。

答案:

#include <iostream>
#include <string>
#include <sstream>

int main() {
    // 初始化字符串
    std::string str = "Hello, ";
    
    // 获取输入并拼接
    std::string input;
    std::getline(std::cin, input);
    str += input;

    // 分割字符串并打印
    std::istringstream iss(str);
    std::string token;
    int wordCount = 0; // 单词计数器
    while (std::getline(iss, token, ',')) {
        // 去除可能的空白字符
        token.erase(0, token.find_first_not_of(' '));
        token.erase(token.find_last_not_of(' ') + 1);
        if (!token.empty()) { // 确保不为空字符串
            std::cout << token << std::endl;
            ++wordCount;
        }
    }
    // 打印单词数量
    std::cout << "Word count: " << wordCount << std::endl;

    // 计算特定字符(逗号)的次数
    int commaCount = 0;
    for (char c : str) {
        if (c == ',') {
            ++commaCount;
        }
    }
    // 打印特定字符的数量
    std::cout << "Comma count: " << commaCount << std::endl;

    return 0;

www.lyysrcw.com
www.lcgxrc.com
www.yczsrc.com
www.cdpzrcw.com
www.jnlwrc.com

}

在这段代码中,我们增加了两个变量 wordCountcommaCount 分别用于统计单词数量和逗号数量。在分割字符串的过程中,我们通过判断 token 是否为空来增加 wordCount。在分割字符串之后,我们通过一个for循环遍历原字符串 str 来统计逗号的出现次数,并打印出这两个统计结果。 

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值