您的位置:

用C++实现字符串操作

一、字符串基础知识

在C++中,字符串是一串以null字符(\0)结尾的字符序列,也就是一个字符数组。

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char str[20] = "Hello";
    cout << strlen(str) << endl; //输出5,因为"Hello"长度为5
    return 0;
}

上述代码中,我们使用了头文件cstring,其中函数strlen可以返回一个字符串的长度。

字符串是一个字符数组,因此可以使用下标访问、遍历。

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char str[20] = "Hello";
    for(int i=0; i<strlen(str); i++)
    {
        cout << str[i] << endl; //遍历输出每一个字符
    }
    return 0;
}

二、字符串拼接

字符串拼接指将两个字符串合并成一个字符串。

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char str1[20] = "Hello";
    char str2[] = "World";
    strcat(str1, str2);  //将str2合并到str1中
    cout << str1 << endl; //输出HelloWorld
    return 0;
}

上述代码中,我们使用了函数strcat将str2拼接到了str1中。

三、字符串比较

字符串比较常用于比较两个字符串的大小关系,判断它们是否相等。

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char str1[] = "Hello";
    char str2[] = "World";
    int cmp = strcmp(str1, str2);
    if(cmp < 0)
    {
        cout << str1 << " is less than " << str2 << endl;
    }
    else if(cmp > 0)
    {
        cout << str1 << " is greater than " << str2 << endl;
    }
    else
    {
        cout << str1 << " is equal to " << str2 << endl;
    }
    return 0;
}

上述代码中,我们使用了函数strcmp比较了两个字符串的大小关系。当cmp小于0时,说明str1小于str2;当cmp大于0时,说明str1大于str2;当cmp等于0时,说明str1等于str2。

四、字符串查找

字符串查找常用于查找一个子串在一个字符串中出现的位置。

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char str[] = "Hello World";
    char sub[] = "Wo";
    char *pos = strstr(str, sub);
    if(pos != NULL)
    {
        cout << "Substring found at position " << pos-str << endl;
    }
    else
    {
        cout << "Substring not found" << endl;
    }
    return 0;
}

上述代码中,我们使用了函数strstr查找子串sub在字符串str中出现的位置。

五、自定义字符串操作

除了上述常见的字符串操作外,我们还可以自定义字符串操作。

#include <iostream>
#include <cstring>

using namespace std;

void reverseString(char *str)
{
    int len = strlen(str);
    for(int i=0; i<len/2; i++)
    {
        char temp = str[i];
        str[i] = str[len-i-1];
        str[len-i-1] = temp;
    }
}

int main()
{
    char str[] = "Hello World";
    reverseString(str);
    cout << str << endl; //输出dlroW olleH
    return 0;
}

上述代码中,我们自定义了一个字符串操作reverseString,用于将一个字符串反转。

总结

字符串操作在编程中非常常见、必要,掌握字符串操作可以帮助我们更好地编写C++程序。