如何判断string字符串的长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断string字符串的长度相关的知识,希望对你有一定的参考价值。

string字符串的长度可以用string中的成员函数length()或者size()来判断。两者功能相同,返回值都是字符串长度。

编写下列程序为例,通过length函数和size函数得到字符串“Test string”的长度,运行结果如下:

扩展资料:

C++ 中的 string 类的用法:

1、string类的构造函数:

string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化

此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 。

2、string类的字符操作:

const char &operator[](int n)const; const char &at(int n)const; char &operator[](int n); char &at(int n);

operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。

const char *data()const;//返回一个非null终止的c字符数组 const char *c_str()const;//返回一个以null终止的c字符串

    int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目

参考技术A 用string的成员方法length()或者size()都可以取得字符串长度

#include <string>
#include <iostream>

using namespace std;
int main()

string str = "Test string";
cout << str.length() << endl;
cout << str.size() << endl;
return 0;

二者没有本质的区别,大部分情况都可以互换使用。但是表示的意义略有不同。
length()比较直观,表示的就是该字符串的长度。

size()表示的是string这个容器中的元素个数。如果使用过std::vector之类的容器的话,可以把string看做是一个vector<char> (这里只是举例,并不能等价), char就是这个容器的元素类型。那么size()表示的就是这个vector(容器)中char的个数。
另外,strlen同样也可以用于C++的string。但是需要用c_str()将C++ string转换为char*类型。如下:
cout << strlen(str.c_str()) << endl;

但是不推荐这么做,有点画蛇添足的感觉

汇编程序:定义一个字符串,计算字符串的长度?

有大佬会吗!

这是用 C 语言编写的程序,可以计算字符串的长度:

在这段代码中,我们定义了一个函数 string_length,用于计算字符串的长度。函数接受一个参数 string,表示要计算长度的字符串。在函数内部,我们使用 C 语言的内置函数 strlen 来计算字符串的长度,并返回结果。
在 main 函数中,我们定义了一个字符串数组 string,并调用了函数 string_length 来计算它的长度。最后,我们使用 printf 函数输出结果。运行这段代码后,会输出字符串 "Hello, world!" 的长度,即 13。

注意:在 C 语言中,字符串数组是一种特殊的数组,其末尾会自动添加一个 null 结束符 '\\0'。所以,上述代码中的字符串数组 string 实际上是一个 13 字节的数组,其中前 12 个字节存储字符串的内容,最后一个字节存储 null 结束符。

参考技术A 在汇编语言中,可以使用相应的指令来定义一个字符串,并计算字符串的长度。下面是一个示例程序,可以帮助您了解汇编语言中如何定义字符串并计算字符串的长度:
  ;定义一个字符串
  stringdb'Hello,world!',0
  ;计算字符串的长度
  moval,string
  movah,0
  xorcx,cx
  next:
  cmpal,0
  jedone
  inccx
  incal
  jmpnext
  done:
  ;cx寄存器中存储的就是字符串的长度
  在上面的程序中,我们使用了DB(DefineByte)指令来定义一个字符串。这个字符串以单引号括起来,其中的内容即为字符串的值。在字符串的末尾加上一个零值(0)可以表示字符串的结束。
  然后,我们使用MOV指令将字符串的地址存储到AL寄存器中,并将AH寄存器清零。然后使用XOR指令将CX寄存器清零。
  接下来,我们使用一个循环来计算字符串的长度。首先使用CMP指令比较AL寄存器中的值是否为零。如果是零,则跳转到“done”标签处结束循环。否则,将CX寄存器的值加1,将AL寄存器的值加1,然后跳转回循环的开头继续循环。
  最后,当循环结束时,CX寄存器中存储的就是字符串的长度。您可以使用其他指令将这个值保存到内存中,或者使用输出指令将其输出到屏幕上。
  希望这些信息能帮助您了解汇编语言中如何定义字符串并计算字符串的长度。
参考技术B Intel x86 汇编语言的示例
首先,需要为字符串定义一个段和一个名称。例如,可以在程序的开头定义如下所示的字符串:
.section .data
str: .ascii "This is a string.\n"
这将创建一个名为 "str" 的字符串,其中包含 "This is a string.\n"。
然后,可以使用循环来计算字符串的长度。例如,可以使用以下代码计算字符串的长度:
.section .text
.globl main
main:
movl $0, %ecx # Initialize the counter to 0
movl $str, %esi # Load the address of the string into %esi
loop:
movb (%esi), %al # Load the next character into %al
addl $1, %ecx # Increment the counter
incl %esi # Move to the next character
cmpb $0, %al # Check if the character is 0 (end of string)
jne loop # If not, continue the loop
done:
# %ecx now contains the length of the string

以上是关于如何判断string字符串的长度的主要内容,如果未能解决你的问题,请参考以下文章

c++如何获取字节BYTE的长度?

char 指针如何判断字符串需要输出长度

c语言如何计算n行字符串的长度?

汇编程序:定义一个字符串,计算字符串的长度?

String类

c语言中字符串的长度是如何计算的?