在C++中,字符数组常用于表示字符串,C++标准库提供了一些函数来处理这些字符串。这些函数主要定义在 <string> 和 <iostream> 头文件中。以下是一些常用的与字符数组相关的函数: - std::cout << charArray;:输出字符数组。
- std::cin >> charArray;:从标准输入读取字符数组。
- strcmp:比较两个C风格字符串。
- strncmp:比较两个C风格字符串的前n个字符。
- strcpy:复制C风格字符串。
- strncpy:复制C风格字符串的前n个字符。
- strcat:连接两个C风格字符串。
- strncat:连接两个C风格字符串的前n个字符。
- strchr:在C风格字符串中查找第一次出现的指定字符。
- strcspn:计算C风格字符串中不包含在某个字符集内的部分的长度。
- strstr:在C风格字符串中查找子字符串第一次出现的位置。
- strstr:查找子字符串在C风格字符串中第一次出现的位置。
- strspn:计算C风格字符串中包含在某个字符集内的部分的长度。
- strlen:计算C风格字符串的长度(不包括结尾的空字符\0)。
- tolower:将字符转换为小写。
- toupper:将字符转换为大写。
- std::stoi:字符串转换为整数。
- std::stof:字符串转换为浮点数。
- std::stol:字符串转换为长整数。
- new char[]:动态分配字符数组。
- delete[]:释放动态分配的字符数组。
- C++标准库中的字符串操作std::string 类提供了大量方法来操作字符串,如 append, substr, find, replace 等。
1. 输入输出#include <iostream>
int main() {
char name[] = "John Doe";
std::cout << "Enter your name: ";
std::cin >> name;
std::cout << "Hello, " << name << "!" << std::endl;
return 0;
}
2. 字符串比较#include <cstring>
int main() {
char str1[] = "hello";
char str2[] = "world";
int result = strcmp(str1, str2); // 返回str1和str2的字典顺序
if (result < 0) {
std::cout << str1 << " is less than " << str2 << std::endl;
} else {
std::cout << str1 << " is greater than or equal to " << str2 << std::endl;
}
return 0;
}
3. 字符串复制#include <cstring>
int main() {
char src[] = "Source String";
char dest[15];
strcpy(dest, src); // 复制src到dest
std::cout << "Copied String: " << dest << std::endl;
return 0;
}
4. 字符串连接#include <cstring>
int main() {
char str1[] = "Hello, ";
char str2[] = "World!";
strcat(str1, str2); // 将str2连接到str1的末尾
std::cout << str1 << std::endl;
return 0;
}
5. 字符搜索#include <cstring>
int main() {
char str[] = "Example String";
char ch = 'S';
char *found = strchr(str, ch); // 查找字符'S'在str中的位置
if (found != nullptr) {
std::cout << "Found character at index: " << (found - str) << std::endl;
} else {
std::cout << "Character not found." << std::endl;
}
return 0;
}
6. 字符串搜索#include <cstring>
int main() {
char str[] = "Example string to search";
char substr[] = "string";
char *found = strstr(str, substr); // 查找子串"string"在str中的位置
if (found != nullptr) {
std::cout << "Substring found at index: " << (found - str) << std::endl;
} else {
std::cout << "Substring not found." << std::endl;
}
return 0;
}
7. 字符计数#include <cstring>
int main() {
char str[] = "Example string!";
char ch = 'e';
size_t count = strspn(str, "aeiou"); // 计算str中包含的字符集"aeiou"的长度
std::cout << "Vowel count: " << count << std::endl;
return 0;
}
8. 字符串长度#include <cstring>
int main() {
char str[] = "Example string";
size_t length = strlen(str); // 获取str的长度
std::cout << "String length: " << length << std::endl;
return 0;
}
9. 字符转换#include <cctype> // 包含字符处理函数的头文件
int main() {
char ch = 'A';
ch = tolower(ch); // 将字符转换为小写
std::cout << "Lowercase character: " << ch << std::endl;
return 0;
}
10. 动态内存管理#include <cstring>
int main() {
char *dynamicStr = new char[20];
strcpy(dynamicStr, "Dynamically allocated string"); // 复制字符串到动态分配的内存
std::cout << dynamicStr << std::endl;
delete[] dynamicStr; // 释放动态分配的内存
return 0;
}
(责任编辑:admin) |