一、ASCII码值
如何比较字符串的大小
从上表可以看到,小写字母从 ‘a’ 到 ‘z’ 对应的ASCII码值是从 97 到 122,而大写字母从 ‘A’ 到 ‘Z’ 对应的ASCII码值是从 65 到 90, 大小写字母之间的差值为32,所以可以通过数学运算将大写字符加上32后转换为小写字符。
二、getchar()、getline()
getchar() //函数来吸收一个回车符
getline(cin, s); // 从标准输入读取一行字符串,存储在字符串变量 s中
三、循环数处理n行
cin >> n;
while (n--)
四、函数
// char代表返回类型,changeChar代表函数名称,char a表示函数接收一个字符a作为参数
char changeChar(char &a) {
if (a >= 'a' && a <= 'z') a -= 32;
// 返回类型为char, 最终还要返回a
return a;
}
返回类型:返回结果是经过转换后的大写字符,所以返回类型为char
函数名:可以自定义,这里使用changeChar作为函数的名称
形参列表:之前的形参列表为空,而一般的形参列表通常包括参数类型和参数名称。参数类型表示参数的数据类型,可以是内置数据类型(例如整数、字符、浮点数等)、用户自定义的数据类型。参数名称通常是用来描述参数的有意义的名称,可以在函数体内部使用,这里接收一个字符作为输入,所以形参列表类型为char, 参数名称可以用a表示, 引用传递&意味着函数可以修改传递给它的参数。
五、形参实参
形参是函数定义中声明的参数,位于函数的参数列表中。形参的作用是定义函数接受的参数的类型和名称,定义的形参只在函数执行期间有效,在函数执行完毕后会被销毁。而且它作用的范围(作用域)仅限于函数体内部,因此它们与函数外部的变量名称可以相同,而不会发生冲突。
实参是函数调用中传递给函数的具体值或变量,实参传递的值必须与函数的形参类型匹配,否则会发生类型错误。
六、引用
在定义函数的时候,我们写形参列表的时候使用了&a的形式,这里的&表示参数a是一个引用,这里的“引用”是什么意思呢?
引用实际上是为变量起了另外一个名字,并且在引用上执行的操作会影响到引用所指向的原始变量。在声明引用时,需要在变量名前使用 & 符号。引用必须在声明时进行初始化,并且一旦初始化,就不能改变引用的目标。
int a = 10;
int &ref = a; // 声明并初始化引用为a
七、题目
#include<iostream>
#include<string>
using namespace std;
// 将小写字母转换成大写字母的函数
char changeChar(char a) {
if (a >= 'a' && a <= 'z') a -= 32;
return a;
}
int main() {
int n;
string result, s;
cin >> n;
getchar();
while (n--) {
result = "";
getline(cin, s);
result += changeChar(s[0]); // 将s[0]传递到参数进行处理,转换成大写字母
for (int i = 1; i < s.size() - 1; i++) {
if (s[i] == ' ' && s[i + 1] != ' ') {
result += changeChar(s[i + 1]); // 将s[i+1]传递到参数进行处理,转换成大写字母
}
}
cout << result << endl;
}
}