相关笔记汇总:[笔记] 字符串输入 #字符输入
题目
题目:1382: 首字母变大写
输入一个英文句子,将每个单词的第一个字母改成大写字母。
- 输入
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。- 输出
请输出按照要求改写后的英文句子。样例输入
i like acm
i want to get an accepted样例输出
Like Acm
I Want To Get An Accepted
代码
写法一:
#include<bits/stdc++.h>
using namespace std;
int main() {
string s;
int d = 'A' - 'a';
bool bol = 1;
while(getline(cin,s)) {
//b=1时代表这次是一个单词的开始,要大写。
bool b = 1;
for(int i = 0; i < s.size(); i ++) {
if(s[i] == ' ') {
b = 1;
continue;
}
if(b) {
if('a' <= s[i] && s[i] <= 'z')
s[i] += d;
b = 0;
}
}
cout << s << endl ;
}
return 0;
}
写法二:
#include<bits/stdc++.h>
using namespace std;
bool b;
int n, i;
char str[101];
int main() {
while(gets(str) != NULL) {//!= NULL可以省略
i = 0, b = 1;
//当前字符串未结束。
while (str[i] != '\0') {
//遇到空格
if(str[i] == ' ') {
printf("%c", str[i]);
//下次要大写咯
b = 1;
i ++;
continue;
}
//遇到字符
//要大写咯
if (b == 1) {
str[i] = toupper(str[i]);
printf("%c", str[i]);
b = 0;
}
//照常输出
else
printf("%c", str[i]);
i ++;
}
printf("\n");
}
return 0;
}