给定驼峰式字符串的句子大小写
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),本质上是常数。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP