发布时间:2026-07-25阅读(0)
每种编程语言,除了int,float,long这些最基本的数据类型外,字符与字符串也必须是“必备全家桶”里面的一员。
C 的字符串,对比许多后起之秀,当然说不上十分方便使用(也许会觉得难用),但其灵活性绝对是杠杠的。
字符串,本质上说其实就是“一串字符”,也就是字符数组。
字符串的初始化char charr1[10] = "android"; //char charr2[20] = {"hello"}; // C 11char charr2[20] {"jaguar"}; // C 11string str1 = "morgan"; // std::stringstring str2 = {"morgan"};string str3 {"morgan"};// C 11
我们可以通过两种方式来声明字符串类型,一种是char数组,一种是std标准库中的string类。
其实上面的char数组,等价于下面的形式:
char charr1[10] = {a,n,d,r,o,i,d,\0,\0,\0};
因为数组本质上其实也是指针,因此在C 中,在char数组用\0元素表示字符串的结束。
char数组必须要指定长度,相比较而言,string就不需要那么麻烦。
字符串的相关操作1.获取字符串长度
int len1 = strlen(charr1);// 使用库函数 strlen()int len_str1 = str1.size();//调用string对象的成员函数size();
char* newChars = strcat(charr1, charr2);// 结果是 "androidhello"string newStr = str1 str2;
strcpy(charr3, charr1);// dst, src: copy from charr1 to charr3;string str4 = str1; // copy str1 to str4;
通常我们都有从命令行输入字符串的诉求,来看看char数组、string对象分别是怎么实现的?
char name[20];//cin >> name; 这种方法会有陷阱,后面展开说明cin.getline(name, 20);string sName;getline(cin, sName);cin >> sName;
函数原型:size_type find(const string& str, size_type pos=0) const
char数组其实有不少缺点,C 建议使用string替代char数组,主要原因有以下几点:
char site[10] = "house";strcat(site, "is white in DC."); //拼接后长度大于10,将会覆盖相邻的内存

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图