给定驼峰式字符串的句子大小写


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),本质上是常数。

更新于: 2023年3月15日

665 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告