Cstring库中的一些函数用法

进制转换
C语言中以数字1-9开头表示十进制,以0开头表示八进制,以0X开头表示十六进制。
比如:int a=010;//其实a是个八进制数,实际数值是8
#include
HEX,英文全称 Hexadecimal,表示十六进制。//cout<<hex<<16;
DEC,英文全称 Decimal,表示十进制。//os<<dec<<10;
OCT,英文全称 Octal,表示八进制。//cout<<oct<<8;
BIN,英文全称 Binary,表示二进制。//cout<<bin<<2;

int num=8;
string a=”678”;

int转stringto_string(num)
string转intcout<<atoi(a.c_str());int num=stoi(a);//#include<stdlib.h>
int转chars=a%10+’0’; a/=10;
char转intint c = (*c) - ‘0’;
string转 const char*const char* c =s.c_str();
char转string把字符转换为c-string,再转换为string
char c = ‘1’;const char *str = &c;std::string s(str, 1);

10个将char转为string类型的方法

ASCII码表几个需要记忆的 0-45,A-65,a-97

string str生成空字符串
string s(str)生成字符串s为str的复制品
string s(str,strbegin,strlen)将字符串str中从下标strbegin开始、长度为strlen的部分作为字符串初值
string s(cstr,char_len)以c_string类型cstr的前char_len个字符串作为字符串s的初值
string s(num,c)生成num个c字符的字符串
string s(str,stridx)将字符串str中从下标stridx的位置到结束作为字符串初值

在这里插入图片描述

在这里插入图片描述

### C++cstring 与 string 的用法C++ 中,`cstring` 是一个头文件,它包含了 C 标准中的字符串操作函数。这些函数主要处理以空字符结尾的字符数组(C 风格字符串)。而 `std::string` 则是 C++ 标准中的一个类,用于更方便地操作字符串[^1]。 #### 1. 使用 `cstring` 头文件 `cstring` 提供了传统的 C 风格字符串操作函数,例如: - `strlen(const char*)`:计算字符串长度。 - `strcpy(char*, const char*)`:复制字符串。 - `strcat(char*, const char*)`:连接字符串。 - `strcmp(const char*, const char*)`:比较字符串。 以下是一个简单的代码示例展示如何使用 `cstring` 中的函数: ```cpp #include <iostream> #include <cstring> int main() { const char* str1 = "Hello"; const char* str2 = "World"; // 计算字符串长度 std::cout << "Length of str1: " << strlen(str1) << std::endl; // 字符串拼接 char buffer[50]; strcpy(buffer, str1); strcat(buffer, " "); strcat(buffer, str2); std::cout << "Concatenated string: " << buffer << std::endl; // 比较字符串 if (strcmp(str1, str2) == 0) { std::cout << "Strings are equal." << std::endl; } else { std::cout << "Strings are not equal." << std::endl; } return 0; } ``` #### 2. 使用 `std::string` `std::string` 是 C++ 标准中的一个类,提供了更高级别的字符串操作接口。相比于 C 风格字符串,`std::string` 更加安全和易于使用。以下是一些常见的用法: - **构造函数**:可以通过多种方式构造 `std::string` 对象。 - **访问元素**:可以通过下标操作符 `[]` 或者 `at()` 方法访问字符串中的字符。 - **修改字符串**:可以使用 `append()`、`insert()`、`erase()` 等方法修改字符串内容。 - **查找子字符串**:可以使用 `find()` 方法查找子字符串的位置。 - **字符串拼接**:可以直接使用 `+` 或 `+=` 操作符拼接字符串。 以下是一个使用 `std::string` 的代码示例: ```cpp #include <iostream> #include <string> int main() { std::string str1 = "Hello"; std::string str2 = "World"; // 字符串拼接 std::string result = str1 + " " + str2; std::cout << "Concatenated string: " << result << std::endl; // 查找子字符串 size_t position = result.find("World"); if (position != std::string::npos) { std::cout << "Substring 'World' found at position: " << position << std::endl; } // 修改字符串 result.append("!"); std::cout << "Modified string: " << result << std::endl; return 0; } ``` #### 3. `CString` 与 `std::string` 的互转 如果在使用 MFC(Microsoft Foundation Classes)时需要将 `CString` 转换为 `std::string`,或者反之,可以参考以下方法[^3]: - **从 `CString` 转换到 `std::string`**: ```cpp #include <atlstr.h> // 包含 CString 定义 #include <string> int main() { CString cstr = _T("Hello, World!"); CT2CA pszConvertedAnsiString(cstr); // 转换为 ANSI 字符串 std::string str(pszConvertedAnsiString); // 初始化 std::string std::cout << "Converted string: " << str << std::endl; return 0; } ``` - **从 `std::string` 转换到 `CString`**: ```cpp #include <atlstr.h> // 包含 CString 定义 #include <string> int main() { std::string str = "Hello, World!"; CString cstr(str.c_str()); // 使用 std::string 的 c_str() 方法初始化 CString std::wcout << L"Converted CString: " << cstr.GetString() << std::endl; return 0; } ``` #### 注意事项 - 在跨平台开发中,尽量避免直接使用 `CString`,因为它属于 MFC 特定的实现[^3]。 - 如果只需要处理纯 ASCII 字符串,`std::string` 是更好的选择。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SODA_BLUEBLUE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值