c++字符串拼接, 整数和字符串的转换,string, const char*, char[]类型之间的转换
1. string字符串拼接
a. 拼接char指针(C - String)类型的字符串, 可以指定长度
如果没有指定长度,拼接C - String的起始位置到'\0'的位置
char a[] = { 'a', 'b', 'c', 'd', '\0'}; const char *b = "wangjing"; s.append(a); s.append(b); s.append(a, 3);
b. 拼接string类型的字符串
string c = "helloworld"; s.append(c);
c. 拼接字符类型:第一个参数用于指定拼接该字符的个数
char ch = 'm'; s.append(2, ch);
2. 整数类型和字符串类型之间的转换
a. 整数类型转字符串类型
方法一:使用_itoa_s(int integer, const char* target, int scale)
第一个参数:需要转换成整形的数;第二个参数:转换后存储的地址;第三个参数:采用的进制
会自动在char* 后面加上'\0',所以可以直接输出结果
int main() { char numtochar[20]; _itoa_s(234, numtochar, 10); cout << numtochar; }
方法二:采用sprintf_s(const char* target, '%d', int integer)字符串格式化函数
第一个参数,存储的目的地址,第二个参数:转换为整形,第三个参数:需要转换成整形的数
int main() { char numtochar[20]; sprintf_s(numtochar, "%d", 234); cout << numtochar; }
b. 字符串类型转整数
atio(const char* charnumber)
int main() { char numtochar[20] = { '1', '3', '5', '7'}; cout << atoi(numtochar); }
3. const char *,string,char[]类型之间的转换
注:对于string中第k个字符,可以使用string[k]和string.at[k]来访问
a. string 转 const char*
方法一:使用data()函数
int main() { string m = "2342"; const char* p = m.data(); int k = 0; while (p[k] != NULL) { cout << p[k] << ","; k++; } }
方法二:使用c_str()函数
int main() { string m = "2342"; const char* p = m.c_str(); int k = 0; while (p[k] != NULL) { cout << p[k] << ","; k++; } // 直接使用cout << p更加简单方便 }
b. string转char[](string 转char *,不需要指定const char类型)
调用string的copy函数:第一个参数为数组对象,第二个参数为长度,第三个参数为起始位置。
int main() { string m = "2342"; char p[50] = { 0 }; m.copy(p, 4, 0); int k = 0; while (p[k] != NULL) { cout << p[k] << ","; k++; } // 直接使用cout << p更加简单方便 }
初始化一个数组时,char类型,默认为'\0',但是需要至少指定第一个,否则认为没有初始化。int类型默认为0
增强版:采用动态内存分配可以减小程序需要的内存空间
int main() { string m = "2342"; int len = m.length() + 1; char *p = new char[len]; m.copy(p, 4, 0); p[len - 1] = '\0'; cout << p; delete[] p; // 直接使用cout << p更加简单方便 }
c char[]和char *转string
直接赋值即可。
int main() { const char *p = "wang"; const char q[] = "helloworld"; string a = p; string b = q; cout << a; cout << b; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人