本题:的主要知识点是小写字母a到z是ASCLL码值是97到122,A到Z的ASCLL码值是65到90。
所以将小写转成大写只需要用'a'减去’A‘即可(差值是32)。
要将首字母小写转成大写,要考虑字符串的首元素(s[0]),还有如果字符前一位是空格的话,证明这个字符也是首字母。
#include<iostream> #include<cstring> using namespace std; int main() { char s[1000]; while (1) { fgets(s,sizeof(s),stdin); for (int i = 0; i < sizeof(s); i++) { if (s[i] == '0' || s[i-1] == ' ') { s[i] -= ('a' - 'A'); } } printf("%s\n", s); } return 0; }