卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

给定一个驼峰命名的字符串,将其转换为句子格式

给定一个驼峰命名的字符串,将其转换为句子格式

一个C++字符串是由字符组成的单词集合。它可以包含字母、数字甚至特殊字符。字符串的句子可以以不同的方式组合在一起,形成不同类型的表示形式。

驼峰命名法是一种字符串的表示方式,它保持以下两个属性不变 -

  • 这些词被连在一起,没有空格字符。

  • 每个单词的首字母都以大写形式存储。

因此,这种表示形式中的大写字母可用于分隔不同的单词。这种类型的表示形式不易阅读,但在编程领域广泛使用。

另一种字符串的表示方式是句子大小写,其中单词由空格字符分隔,除第一个单词外,所有单词以小写字母开头。

在下面的问题中,给定字符串的驼峰式大小写必须转换为句子大小写表示形式。

说明问题陈述的一些示例如下 -

示例示例

示例1 - str:IdentifyThe@abc

输出:识别@abc

说明:特殊字符也按原样打印

示例2 - str:ThisIsCamelCase

输出:这是驼峰命名法

说明:第一个字母在输出过程中按原样打印。

这个问题可以通过字符大小写检查来解决,如果需要,可以将其转换为相反的大小写。

算法

  • 第一步 − 使用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),本质上是常数。

卓越飞翔博客
上一篇: 如何实现C++中的自动驾驶和智能交通系统?
下一篇: 如何通过C++开发实现智能金融应用?
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏