C++教程-C++字符串
C++字符串
在 C++ 中,字符串是 std::string 类的对象,表示字符序列。我们可以对字符串执行许多操作,如拼接、比较、转换等。
C++ 字符串示例
让我们看一个简单的 C++ 字符串示例。
#include <iostream>
using namespace std;
int main() {
string s1 = "Hello";
char ch[] = { 'C', '+', '+' };
string s2 = string(ch);
cout << s1 << endl;
cout << s2 << endl;
return 0;
}
输出:
Hello
C++
C++ 字符串比较示例
让我们看一个使用 strcmp() 函数进行字符串比较的简单示例。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char key[] = "mango";
char buffer[50];
do {
cout << "What is my favorite fruit? ";
cin >> buffer;
} while (strcmp(key, buffer) != 0);
cout << "Answer is correct!!" << endl;
return 0;
}
输出:
What is my favorite fruit? apple
What is my favorite fruit? banana
What is my favorite fruit? mango
Answer is correct!!
C++ 字符串拼接示例
让我们看一个使用 strcat() 函数进行字符串拼接的简单示例。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char key[25], buffer[25];
cout << "Enter the key string: ";
cin.getline(key, 25);
cout << "Enter the buffer string: ";
cin.getline(buffer, 25);
strcat(key, buffer);
cout << "Key = " << key << endl;
cout << "Buffer = " << buffer << endl;
return 0;
}
输出:
Enter the key string: Welcome to
Enter the buffer string: C++ Programming.
Key = Welcome to C++ Programming.
Buffer = C++ Programming.
C++ 字符串复制示例
让我们看一个使用 strcpy() 函数进行字符串复制的简单示例。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char key[25], buffer[25];
cout << "Enter the key string: ";
cin.getline(key, 25);
strcpy(buffer, key);
cout << "Key = " << key << endl;
cout << "Buffer = " << buffer << endl;
return 0;
}
输出:
Enter the key string: C++ Tutorial
Key = C++ Tutorial
Buffer = C++ Tutorial
C++ 字符串长度示例
让我们看一个使用 strlen() 函数计算字符串长度的简单示例。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char ary[] = "Welcome to C++ Programming";
cout << "Length of String = " << strlen(ary) << endl;
return 0;
}
输出:
Length of String = 26
C++ 字符串函数
函数 | 描述 |
---|---|
int compare(const string& str) | 用于比较两个字符串对象。 |
int length() | 用于查找字符串的长度。 |
void swap(string& str) | 用于交换两个字符串对象的值。 |
string substr(int pos,int n) | 创建一个包含 n 个字符的新字符串对象。 |
int size() void resize(int n) | 用于调整字符串的长度为 n 个字符。 |
string& replace(int pos,int len,string& str) | 用 str 替换从位置 pos 开始并跨越 len 个字符的字符串部分。 |
string& append(const string& str) | 在另一个字符串对象的末尾添加新字符。 |
char& at(int pos) | 用于访问指定位置 pos 处的单个字符。 |
int find(string& str,int pos,int n) | 用于查找在参数中指定的字符串。 |
int find_first_of(string& str,int pos,int n) | 用于查找指定序列的第一个出现位置。 |
int find_first_not_of(string& str,int pos,int n) | 用于在字符串中搜索第一个与字符串中指定的任何字符不匹配的字符。 |
int find_last_of(string& str,int pos,int n) | 用于在字符串中搜索指定序列的最后一个字符。 |
int find_last_not_of(string& str,int pos) | 用于查找与指定序列不匹配的最后一个字符。 |
string& insert() | 在指定位置 pos 之前插入新字符。 |
int max_size() | 查找字符串的最大长度。 |
void push_back(char ch) | 在字符串的末尾添加一个新字符。 |
void pop_back() | 删除字符串的最后一个字符。 |
string& assign() | 为字符串分配新值。 |
int copy(string& str) | 将字符串的内容复制到另一个字符串中。 |
char& back() | 返回最后一个字符的引用。 |
Iterator begin() | 返回第一个字符的引用。 |
int capacity() | 返回字符串的分配空间。 |
const_iterator cbegin() | 指向字符串的第一个元素。 |
const_iterator cend() | 指向字符串的最后一个元素。 |
void clear() | 从字符串中删除所有元素。 |
const_reverse_iterator crbegin() | 指向字符串的最后一个字符。 |
const_char* data() | 将字符串的字符复制到数组中。 |
bool empty() | 检查字符串是否为空。 |
string& erase() | 删除指定的字符。 |
char& front() | 返回第一个字符的引用。 |
string& operator+=() | 在字符串的末尾添加一个新字符。 |
string& operator=() | 为字符串分配新值。 |
char operator | 检索指定位置 pos 处的字符。 |
int rfind() | 查找字符串的最后一个出现位置。 |
iterator end() | 引用字符串的最后一个字符。 |
reverse_iterator rend() | 指向字符串的第一个字符。 |
void shrink_to_fit() | 减少分配的空间,使其等于字符串的大小。 |
char* c_str() | 返回指向包含空终止序列的字符数组的指针。 |
const_reverse_iterator crend() | 引用字符串的第一个字符。 |
reverse_iterator rbegin() | 引用字符串的最后一个字符。 |
void reserve(inr len) | 请求容量的变化。 |
allocator_type get_allocator(); x | 返回与字符串关联的已分配对象。 |