您的位置:

C++中的length()函数详解

一、C length函数头文件

C++的 string 类是 C++ 标准中用于处理字符串的最主要的类之一。C++ 的 string类 中包含了许多方便的函数,以帮助我们方便地进行字符串的处理。其中,length() 函数是 string 类中的一个重要函数。

在使用 length() 函数时,我们需要引入头文件 string.h 或者 cstring。通过这些头文件,我们可以使用字符串处理函数库中定义的函数,如 strlen()、strcpy()、strcat()、strcmp() 等。

二、C length函数用法

C++ 标准库中的 string 类对象可以通过使用 length() 函数来计算字符串的长度。

#include
#include
   
using namespace std;
int main()
{
    string str1 = "Hello, World!";
    cout << "Length of string is : " << str1.length();
    cout << endl;
    return 0;
}

   
  

运行上面的代码,我们可以得到以下输出:

Length of string is : 13

这里,我们定义了一个 string 类型的变量 str1,并将其初始化为 "Hello, World!"。然后,我们利用 length() 函数计算了该字符串的长度。输出结果为 13,与该字符串的长度相等。

三、C length函数d, clength函数, c length函数 数组的长度

C++ 中还有其他函数可以用于计算字符串的长度。

在 C 语言中,strlen() 函数是计算字符串长度的标准函数,并且其返回值的类型为 size_t。它在头文件 string.h 或 cstring 中被声明。C++ 中的 length() 函数与 strlen() 函数不同,前者是 string 类下的函数,后者是 C 语言中的函数。

#include 
#include 
   
using namespace std;

int main()
{
   char str1[12] = "Hello";
   char str2[12] = "World";
   char str3[12];
   int  len ;

   /* 复制 str1 到 str3 */
   strcpy( str3, str1);
   cout << "strcpy( str3, str1) : " << str3 << endl;

   /* 连接 str1 和 str2 */
   strcat( str1, str2);
   cout << "strcat( str1, str2): " << str1 << endl;

   /* 连接后,str1 的总长度 */
   len = strlen(str1);
   cout << "strlen(str1) : " << len << endl;

   return 0;
}

   
  

上述代码中,我们定义了三个 char 类型的字符串,并且使用了 strcpy() 和 strcat() 函数将它们复制和连接。然后,我们用 strlen() 函数分别计算了 str1 与 str2 相连后的字符串长度。

四、C函数 int, 函数len

除了 string 类和 C 语言中的函数,C++ 标准库还提供了一些其他的函数,可以用于计算字符串长度。

比如,我们可以使用 cctype 头文件中的函数 int ispunct ( int c ) 来计算一个字符串中的标点符号数,并用字符串总长度减去标点符号数,就可以得到字符串中字符数。

#include 
#include 
   
#include 
      // 包含cctype头文件用于计算标点符号
using namespace std;

int main()
{
    string str = "hello 123 ., world?";
    int length = str.length();
    int punct_count = 0;
    for (int i = 0; i < length; i++) {
        if (ispunct(str[i])) {
            punct_count++;
        }
    }
    int char_count = length - punct_count;
    cout << "The length of string is : " << char_count << endl;
    return 0;
}

    
   
  

上述代码中,我们使用了 string 类型的变量 str 以及 cctype 头文件中的 ispunct() 函数、计算字符串总长度以及字符数的方法。运行该程序,我们将得到以下输出:

The length of string is : 19

五、C函数...参数, LENGTH函数

在一些特殊情况下,我们可能需要使用变参函数来计算字符串长度。在 C++ 中,可以使用 ... 参数以及 LENGTH 函数来实现这一目的。

#include
#include
   
using namespace std;

int len(const char* format, ...) {
    va_list args;
    va_start(args, format);
    int count = vsnprintf(NULL, 0, format, args);
    va_end(args);
    return count;
}

int main()
{
    cout << len("Hello %s", "World!") << endl;
    return 0;
}

   
  

上述代码中,我们定义了 len() 函数,它包含了一个 ... 参数。然后,我们使用 vsnprintf() 函数计算字符串长度。

vsnprintf() 函数是可变参数选择,具体说明请见函数文档,一般用于将格式化字符串写入字符数组。

运行上述程序,我们将获得以下输出:

Hello World!