c++使用string类编程,输入一句英文,将每个单词的第一个字母改成大写
时间: 2024-10-18 10:10:33 浏览: 1
在C++中,你可以使用`std::string`类以及一些基本的字符串操作函数来实现这个功能。这里是一个简单的示例,它首先分割字符串为单词数组,然后遍历数组,对每个单词的第一个字母转换为大写:
```cpp
#include <iostream>
#include <string>
#include <cctype> // 包含toupper函数
// 分割字符串为单词数组
std::vector<std::string> split_string(const std::string &str) {
std::vector<std::string> words;
size_t start = 0, end;
while ((end = str.find(" ", start)) != std::string::npos) {
words.push_back(str.substr(start, end - start));
start = end + 1; // 跳过空格
}
if (start < str.size()) { // 如果字符串末尾还有字符
words.push_back(str.substr(start)); // 添加剩余部分
}
return words;
}
// 将单词的第一个字母转为大写
void capitalize_first_letter(std::vector<std::string> &words) {
for (size_t i = 0; i < words.size(); ++i) {
if (!words[i].empty()) { // 防止处理空字符串
words[i][0] = toupper(words[i][0]); // 使用toupper函数转换首字母为大写
}
}
}
int main() {
std::string input;
std::cout << "请输入一句话: ";
getline(std::cin, input); // 使用getline处理换行符
std::vector<std::string> word_vector = split_string(input);
capitalize_first_letter(word_vector);
for (const auto &word : word_vector) {
std::cout << word << " ";
}
std::cout << "\n";
return 0;
}
```
当你运行这个程序并输入英文句子,它会输出每个单词的第一个字母大写的版本。
阅读全文