题解(新手易懂)
2026-04-16 19:18:53
发布于:湖南
5阅读
0回复
0点赞
#include <bits/stdc++.h> // 万能头文件,包含所有C++常用库
using namespace std; // 使用标准命名空间,不用写std::cin/std::cout
int main(){
int n; // 定义整数n,表示一共有多少个单词需要处理
cin>>n; // 输入n
// 外层循环:循环n次,每次处理一个单词
for(int i=1;i<=n;i++){
int m; // 用来存当前单词的长度
string t; // 定义字符串t,用来存当前输入的单词
cin>>t; // 输入一个单词
m=t.length(); // 把单词的长度赋值给m
// 内层循环:遍历单词的每一个字符(i从0开始,是字符的位置)
for(int i=0;i<m;i++){
// 判断:如果当前字符是字母(大写A-Z 或 小写a-z)
if(t[i]>='A'&&t[i]<='Z'||t[i]>='a'&&t[i]<='z'){
// 如果是第 0 个字符(首字母),并且是小写 → 改成大写
if(t[i]>'Z'&&i==0) t[i]-=32;
// 如果不是首字母,并且是大写 → 改成小写
if(t[i]<'a'&&i!=0) t[i]+=32;
}
}
cout<<t<<endl; // 输出修改好的单词
}
return 0; // 程序结束
}
1. 开头部分
#include <bits/stdc++.h>
using namespace std;
这两行是固定开头,用来让程序能使用输入输出、字符串等功能。
2. 主函数 + 读入数量
int main(){
int n;
cin>>n;
main
是程序入口,代码从这里开始运行
n 表示你要输入多少个单词
3. 外层循环:处理 n 个单词
for(int i=1;i<=n;i++){
string t;
cin>>t;
m=t.length();
循环跑 n 次,每次读入一个单词
t.length() 是求这个单词有多少个字符
4. 内层循环:修改每个字母(核心!)
for(int i=0;i<m;i++){
if(是字母){
if(首字母 + 小写) → 改成大写
if(非首字母 + 大写) → 改成小写
}
}
这里的小知识:
大写字母和小写字母 ASCII 码差 32
小写 → 大写:减 32
大写 → 小写:加 32
代码逻辑:
1.第一个字母:强制变成大写
2.后面所有字母:强制变成小写
3.最后输出规范格式的单词
举个例子你就彻底懂了
输入:hELLo
1.第 0 位 h 是小写、首字母 → 变成 H
2.第 1 位 E 大写、非首字母 → 变成 e
3.第 2 位 L → 变成 l
4.第 3 位 L → 变成 l
5.第 4 位 o → 保持小写
6.最后输出:Hello
小提醒(新手容易错)
字符串字符位置从 0 开始,不是 1
大小写转换靠 ±32
外层循环i和内层循环i重名了,虽然能跑,但不规范,最好改成 j
总结
这段代码的作用就是:自动把它们变成「首字母大写,其余小写」的规范格式
这里空空如也








有帮助,赞一个