10 条题解
-
2
#include <iostream> #include <string> using namespace std; int main() { string a; getline(cin, a); //这道题虽然看起来难度不大但是稍微有不注意还是很容易WA的,下面提几个容易WA的点 //1.空格可以有多个,所以如果找单词首字母采用空格位置+1的话可能下一个位置还是空格,就容易错 //2.字母可以大小写,等会给几个我用过的测试案例 //3.开头可以有空格,这个是最坑的,因为开头有没有空格并不像后面说单词单词之间一定有空格这么绝对,所以这里我把 // 开头有无空格单拎出来进行讨论,而且开头也可以有多个空格 //4.测试案例,就用题目给的end of file就可以: /* (开头)end of file (开头)End of File (开头)end of File (开头) end of File */ int i = 0; while (a[i] == ' ') { i++; } if (a[i] > 90) { a[i] -= 32; cout << a[i]; } else { cout << a[i]; } for (i; i < a.size(); i++) { if (a[i] == ' ') { if (a[i + 1] == ' ') { continue; } if (a[i + 1] > 90) { a[i + 1] -= 32; cout << a[i + 1]; } else { cout << a[i + 1]; } } } return 0; }
-
2
这道题我做了蛮久的,其实问题不难解决,主要是想不到一个比较好的方法。本题难点在于如何读取字符串,使得后面方便处理。 你会发现我除了用cin读入字符串外,还加了一个getchar函数。因为cin函数遇到空格或者换行会结束读入,但是cin并没有丢弃换行符, 而getchar是可以读取换行符的,因此每次输入一行字符串,用getchar来吸收换行符,判断结束,cin以空格结束,这样可以利用空格切割字符串也是一个讨人喜欢的方法。
AC代码
#include <bits/stdc++.h> using namespace std; int main() { int n; scanf("%d",&n); while(n--){ string a; while(cin>>a){ if(a[0]>='a'&&a[0]<='z'){ printf("%c",a[0]-32); }else{ printf("%c",a[0]); } char ch=getchar(); if(ch=='\n'){ break; } } printf("\n"); } return 0; }
-
1
很多人觉得输入字符串是难点,实际上非常简单:
#include <bits/stdc++.h> using namespace std; string s; int main(){ while (cin>>s){ cout<<(char)toupper(s[0]);//注意toupper返回的是int } return 0; }
番外:其他缩写
WA:
Wonderful AnswerWrong AnswerTLE:Time Limit Exceeded(不要一看到 E 就想到 Error)
MLE:Memory Limit Exceeded
CE:Compile Error
RE:Runtime Error
WWW(万维网):World Wide Web
- 1
信息
- ID
- 51
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 4
- 标签
- 递交数
- 195
- 已通过
- 95
- 上传者