给定驼峰式字符串的句子大小写
C++ 字符串是由构成单词的字符集合。它可能包含字母、数字,甚至特殊字符。字符串的句子可以以不同的方式组合在一起,形成不同类型的表示形式。
字符串的驼峰式命名法表示字符串的方式,使其满足以下两个属性:
单词连接在一起,没有空格字符。
每个单词的第一个字母都存储为大写。
因此,这种表示形式中的大写字母可以用来分隔不同的单词。这种表示形式不容易阅读,但在编程领域被广泛使用。
另一种字符串表示形式是句子大小写,其中单词之间用空格字符分隔,除了第一个单词之外,所有单词都以小写字母开头。
在以下问题中,必须将给定字符串的驼峰式命名法转换为句子大小写表示形式。
一些说明问题陈述的示例如下:
示例
示例 1 - str : IdentifyThe@abc
输出:Identify the@abc
说明:特殊字符也按原样打印
示例 2 - str : ThisIsCamelCase
输出:This is camel case
说明:在输出过程中,第一个字母按原样打印。
此问题可以通过字符大小写检查,然后根据需要将其转换为相反的大小写来解决。
算法
步骤 1 - 使用 for 循环遍历提供的输入字符串。
步骤 2 - 如果指针位于第一个字符处,则按原样打印。
步骤 3 - 对于其余字符,如果找到大写字母,则首先显示空格字符。然后将字母转换为小写并显示。
步骤 4 - 否则,如果打印任何小写字符,则按原样打印。步骤 5 - 否则,任何特殊字符都按原样打印。
示例
以下代码片段以驼峰式 C++ 字符串为例,并将其分别转换为句子大小写:
//including the required libraries #include <bits/stdc++.h> using namespace std; //convert camelcase string to sentence case respectively void sentenceCase(string str){ //getting the length of string int len = str.length(); //iterating over the string for(int i=0;i<len;i++) { //printing the first character of the string if(i==0){ cout << str[0]; } else { //check if current character is in upper case convert to lower case and insert a space before it to separate the words if (str[i] >= 'A' && str[i] <= 'Z'){ //printing a space before character cout << " " ; char ch = (char)tolower(str[i]); //printing the character in lower case cout << ch; } //if character already in lower case print as it is else cout << str[i]; } } } //calling the method int main(){ //sample string string s = "ConvertCamelCaseToSentenceCase"; cout<<"Entered String :"<<s; cout<<"\nConverted String:"; //print the sentence case sentenceCase(s); return 0; }
输出
Entered String :ConvertCamelCaseToSentenceCase Converted String:Convert camel case to sentence case
结论
在字符串的情况下,可以轻松执行大小写转换。字符串的句子大小写增强了可读性。它通过用空格分隔单词使其易于理解。上述方法的时间复杂度在最坏情况下为 O(n),其中 n 是字符串的长度。因此,算法在线性时间内工作。上述算法的空间复杂度为 O(1),本质上是常数。