输入一段英文,将每个单词的首字母转换为大写。要求编写函数实现转换,在main函数中输入和输出转换后的字符串 用C++写一下
时间: 2024-01-22 14:18:56 浏览: 26
以下是实现代码:
```c++
#include <iostream>
#include <string>
#include <cctype> // 包含toupper函数
using namespace std;
string capitalize(string str) {
// 首先将字符串中所有字母转换为小写
for (int i = 0; i < str.length(); i++) {
str[i] = tolower(str[i]);
}
// 对于第一个字母和每个单词的第一个字母,将其转换为大写
for (int i = 0; i < str.length(); i++) {
if (i == 0 || isspace(str[i-1])) { // 如果是第一个字母或前一个字符为空格,则将当前字符转换为大写
str[i] = toupper(str[i]);
}
}
return str;
}
int main() {
string input_str, output_str;
cout << "请输入一段英文:";
getline(cin, input_str); // 获取输入的一行字符串
output_str = capitalize(input_str);
cout << "转换后的字符串为:" << output_str << endl;
return 0;
}
```
在上述代码中,我们定义了一个 `capitalize` 函数来实现字符串的首字母大写转换。该函数首先将字符串中所有字母都转换为小写字母,然后再对于第一个字母和每个单词的第一个字母进行转换。在 `main` 函数中,我们调用 `capitalize` 函数对输入的字符串进行转换,并输出转换后的字符串。