问题陈述
我们给出了一个字符串‘str’,包含大写或小写的字母字符。我们需要检查字符串中大写字符的使用是否正确。
以下是在字符串中正确使用大写字母的方法。
-
如果只有第一个字符是大写的,其他字符都是小写的。
-
如果字符串的所有字符都是小写。
-
如果字符串的所有字符都是大写。
示例
输入
"Hello"
登录后复制
输出
"valid"
登录后复制
Explanation
的中文翻译为:
解释
“Hello”中,只有第一个字符为大写,其他字符均为小写,因此是一个有效的字符串。
输入
'hello'
登录后复制
输出
'valid'
登录后复制
Explanation
的中文翻译为:
解释
在“hello”字符串中,所有字符都是小写的,因此它是一个有效的字符串。
输入
‘heLLO’
登录后复制
输出
‘Not Valid’
登录后复制
Explanation
的中文翻译为:
解释
在字符串‘heLLO’中,第一个字符是小写的,但是最后3个字符是大写的,所以这个字符串是无效的。
方法一
在这种方法中,如果第一个字符是小写字母,我们检查字符串的所有字符是否都是小写字母,并返回一个布尔值。如果第一个字符是大写字母,我们检查所有其他字符是大写字母或小写字母,并返回布尔值。
算法
-
步骤 1 - 定义 isLower() 函数,该函数将单个字符作为参数,并返回布尔值该字符是否为小写。如果‘character-A’大于或等于32,则表示字符为小写。
-
步骤 2 - 定义 isUpper() 函数,就像 isLower() 函数一样,并根据字符是否为大写字母返回一个布尔值。
-
第 3 步 - 定义 isValidUpper() 函数,该函数检查字符串是否包含所有有效的大写字符。
-
步骤 4 - 在 isValidUpper() 函数中,使用 isLower() 函数,并检查第一个字符是否为小写。如果是,请使用循环和 isUpper() 函数检查所有其他字符。如果有任何字符为大写,则返回 false。否则,如果所有字符均为小写,则返回 true。
-
第5步 - 如果第一个字符是大写字母,则需要检查两种情况。第一种情况是所有字符都可以是大写字母,或者除了第一个字符外,所有字符都可以是小写字母。
-
第5.1步 - 定义变量‘totalUpper’并将其初始化为1。
-
步骤 5.2 − 计算字符串中大写字符的总数。
-
步骤 5.3 - 如果大写字符总数等于 1 或字符串长度,则表示字符串包含有效的大写字符,返回 true。否则,返回 false。
示例
#include
using namespace std;
// Check if character c is in lowercase or not
bool isLower(char c){
return c - 'A' >= 32;
}
// Check if character c is in uppercase or not
bool isUpper(char c){
return c - 'A' < 32;
}
bool isValidUpperCase(string str){
int len = str.size();
// If the first character is in lowercase, check whether all the other characters are in lowercase or not.
// If not, return false. Otherwise, return true.
if (isLower(str[0])) {
for (int i = 1; i < len; i++) {
if (isUpper(str[i]))
return false;
}
return true;
} else {
// If the first character is in uppercase, find the total number of uppercase characters
int totalUpper = 1;
for (int i = 1; i < len; i++){
if (isUpper(str[i]))
totalUpper++;
}
// if the total number of uppercase characters is equal to the length of the string or 1, return true. Otherwise, return false.
if (totalUpper == len || totalUpper == 1)
return true;
else
return false;
}
}
int main(){
string str1 = "TutorialsPoint";
string str2 = "tutorialspoint";
string str3 = "Tutorialspoint";
string str4 = "TUTORIALSPOINT";
cout