小光第一次参加 CSP-J2CSP−J2 ,他定义了 nn 个全局变量,每个变量名都是由 英文字母 和 数字 组成。(他知道变量名只能由 下划线 _、数字、英文字母 组成,且变量名的第1个字符不能为数字。由于 _ 不易输入,小光从不用下划线!)
小光认为只要遵守上述命名规则,就万事大吉了!但作为老前辈的佐为知道:小光的这些变量名是有潜在风险的,由于它们都只含小写英文字母和数字,那么它们可能与某些STL提供的函数、常量等冲突,如定义了变量 maxmax 则将会与 maxmax 函数冲突;此外,还可能引起其它一些错误!
佐为恳请你帮忙编写一个程序,检查这 nn 个变量名的第1个字符,若它为小写英文字母,则改为大写英文字母,从而保证这些全局变量名是没有潜在危险的!
输入格式
输入占 1+n1+n 行。
第1行包含一个整数,即题目中所述的 nn(0 < n \le 1000<n≤100)
接下来 nn 行,每行包含一个长度 不超过20的 字符串,代表一个变量名。
输出格式
输出占 nn 行,每行包含一个字符串,代表修改后的变量名。
输入输出样例
输入
6
next
x1
max
summary
count365
abs
输出
Next
X1
Max
Summary
Count365
Abs
不废啊!
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
char strs[n][100];
for (int i = 0; i < n; i++) {
cin >> strs[i];
if (strs[i][0] >= 'a' && strs[i][0] <= 'z') {
strs[i][0] -= ('a' - 'A');
}
}
for (int i = 0; i < n; i++) {
cout << strs[i] << endl;
}
return 0;
}
输入格式: 第一行是一个整数n,表示变量的个数。 接下来n行,每行包括两个部分,第1部分为变量名,由英文字母、数字、下划线组成,长度不超过20个字符;第2部分为变量值。
输出格式: 对于每个变量,输出其修改后的变量名和变量值,各占一行。
输入样例: 3 thinger_1 23 thinger_2 33 thinger_3 45
输出样例: Thinger_1 23 Thinger_2 33 Thinger_3 45
解题思路: 读入n和n个变量的姓名和值,对于每个变量,将它的头字母改成大写即可。 注意到在求某个字符大写的时候,可以调用toupper()函数。 代码:
你可以通过遍历每个字符串,判断首字符是否为小写字母进行修改。具体的,你可以使用 Python 中的 islower()
方法来判断字符串首字符是否为小写字母,如果是,则使用 upper()
方法将其转换为大写字母,否则则保持不变。
以下是一种可能的实现方法:
n = int(input())
for _ in range(n):
s = input()
if s[0].islower():
s = s[0].upper() + s[1:]
print(s)
这里首先输入全局变量的个数 n
,然后对于每个变量名,读入其字符串 s
并判断其首字符是否为小写字母。如果是,则使用 upper()
方法将其转换为大写字母,否则则保持不变。最后将修改后的字符串输出。
注意,这里使用了切片方法来修改字符串,即 s[0].upper() + s[1:]
,将字符串首字符修改为大写字母后与其余字符拼接起来。
解题思路:
对于每个字符串,只需检查第一个字符是否为小写字母,若是,则将其变为大写字母即可。
Python代码:
n = int(input())
for i in range(n):
s = input()
if s[0].islower():
s = s[0].upper() + s[1:]
print(s)