//1.char --单个字符的类型,注意其本质是整数(ASCII码)
char decimalValue = 65;
char hexadecimalValue = 0x41;
char octalValue = 0101;
//上面三行代码表示的都是同一个ASCII整数,最终会解释为字符'A'
//注意:char decimalValue = '65'; 会导致编译错误,正确的表示字符'A'应该如下定义char decimalValue = 'A',你可以这样理解,最终是要表示为65,需要中间字符常量'A'过渡。
//char * 和 char []
char text[] = "hello"; //1
string strtext = "hello";
char* str = &strtext; //2
//1 和 2等价,前者通过c语言实现,后者通过c++实现,如何实现1 和 2之间转换,一个是字符数组(表现形式:字符串)一个是字符串,但字符串源码也是通过字符数组实现的。
const char * test = &strtext; //补充这样才完美
vector<string> ans1; //1
char** ans2; //2
//1 和 2的格式是一样,等价,但转换时,还需要一点处理
ans1 = {"Apple", "Banana", "Orange"};
char* words[] = {"Apple", "Banana", "Orange"};
ans2 = words;
//char*[] 指向字符指针的数组,用于存储多个字符串。
char* names[] = {"Alice", "Bob", "Charlie"};
//将字符串转换成整数
int atoi(const char* str);
//将c++的字符串转为c的字符串(就这么理解吧,可能不严谨)
//方法1
std::string str = "Hello";
const char* charPtr = str.c_str();
char* charArray = const_cast<char*>(charPtr);
//方法2 拷贝
std::string str = "Hello";
char* charArray = new char[str.length() + 1]; // +1 用于存储 null 终止符
strcpy(charArray, str.c_str());
//反过来怎么转呢?
//charArray --->str
const char* charArray = "Hello";
std::string str(charArray);
//方法2 使用赋值原运算符(也就是 =)
const char* charArray = "Hello";
std::string str;
str = charArray;
//一些字符串的操作,当然还可以使用正则来操作
//1.通过下标获取指定字符
std::string str = "Hello";
char ch = str[2]; // 获取索引为2的字符,结果为 'l'
//2.截取某段子字符串
std::string str = "Hello, World!";
std::string sub = str.substr(7, 5); // 从索引位置 7 开始,获取长度为 5 的子字符串
//3.将所有字符串全部转为小写
#include <algorithm>
#include <cctype>
std::string str = "Hello, World!";
std::transform(str.begin(), str.end(), str.begin(), [](unsigned char c) { return std::tolower(c); });
//4.将字符串全部转为大写
#include <algorithm>
#include <cctype>
std::string str = "Hello, World!";
std::transform(str.begin(), str.end(), str.begin(), [](unsigned char c) { return std::toupper(c); });
//5.寻找子字符串 注意区分大小写 返回第一次找到的位置
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
std::string searchStr = "World";
size_t found = str.find(searchStr);
if (found != std::string::npos) {
std::cout << "Substring found at position: " << found << std::endl;
} else {
std::cout << "Substring not found." << std::endl;
}
return 0;
}
c/c++ | char与string
最新推荐文章于 2023-12-02 21:16:15 发布