欢迎访问宙启技术站
智能推送

字符串处理函数:strlen、substr、trim

发布时间:2023-06-23 01:24:34

字符串是计算机编程中经常使用的数据类型,对字符串进行处理十分常见。在字符串的处理中,常用的函数有strlen、substr和trim等。

strlen函数用于计算字符串的长度,其函数原型为:

size_t strlen(const char* str);

其中,const char* str表示要计算长度的字符串。返回值是一个size_t类型的无符号整数,表示字符串的长度。

例如:

char str[] = "Hello World!";
size_t len = strlen(str);
printf("字符串 %s 的长度为 %zu
", str, len);

输出结果如下:

字符串 Hello World! 的长度为 12

可以看到,strlen函数可以方便地计算出字符串的长度。

substr函数用于截取字符串的一部分,其函数原型为:

string substr(size_t pos = 0, size_t len = npos) const;

其中,size_t pos表示从哪个位置开始截取,size_t len表示要截取的长度,如果不指定,则默认截取到字符串的末尾。返回值是一个string对象,表示截取后的字符串。

例如:

string str = "Hello World!";
string substr = str.substr(6,5);
cout << "截取后的字符串为: " << substr << endl;

输出结果如下:

截取后的字符串为: World

可以看到,substr函数可以方便地截取出字符串的一部分。

trim函数用于去除字符串两端的空格,其实现可以参考下面的代码:

void trim(string &s) {
    if (s.empty()) {
        return;
    }
    s.erase(0, s.find_first_not_of(" "));
    s.erase(s.find_last_not_of(" ") + 1);
}

其中,string &s表示要去除空格的字符串,&表示传递的是字符串的引用,可以直接修改原来的字符串。先通过s.find_first_not_of(" ")找到字符串开头 个非空格字符的位置,再通过s.erase(0, pos)删除空格和空格前面的字符,然后找到字符串结尾最后一个非空格字符的位置s.find_last_not_of(" "),最后通过s.erase(pos)删除空格和空格后面的字符。

例如:

string str = " Hello World! ";
trim(str);
cout << "|" << str << "|" << endl;

输出结果如下:

|Hello World!|

可以看到,trim函数可以方便地去除字符串两端的空格。

在字符串的处理中,strlen、substr和trim函数经常被使用,掌握它们的用法可以让字符串操作更加高效。