C++ 标准的STL库中为我们提供了一个极为方便的字符串类 string
C中也为我们提供了一个相似用法的字符串指针 char *
用法比较:
1.C++:
1)定义一个字符串 string G;
2)访问string字符串的单个字符
string[1]等等,类似于数组
string G;
cin >> G; // G = “abcd”
cout<< G[0] << G[1] << endl;
3)测量字符串长度
G.size();
4)查找字符位置
int pos1 = G.find("a") //返回第一个“a”所在的位置 0
int pos2 = G.find("a", 3)
//从G[3]开始查找,如果发现则返回第一次发现的下标,否则返回0;
5)删除用法
erase(pos, n); 删除从pos开始的第n个字符,注意包括pos
erase(position); 删除position的一个字符(利用迭代器删除)
it = G.begin() + 1;
G.erase(it);
cout << G ; // G = "acd";
6)当string存多个字符串时G[N][N];
用法类似上面
2.C:
1)定义一个字符串 char *p //p = "abcd"
2)访问单个字符
p[1],[p2]类似数组
3)测量长度
strlen(p) // 注意不能用sizeof(),sizeof得到的是指针的长度4
4)定义多个字符串时 char *p[N];
5)引用多个字符串里的一个字符时可以类似二维数组,也可以用指针访问*(*(p+n)+m)
区别
1.string是一个类,在算法竞赛中如果对时间复杂度要求高的话,string不推荐用
但是它方便简洁,功能强大,集成的函数也较多。在实际开发中用处较大。
2.指针数组 在算法竞赛中想要节省时间的话,可以考虑。是指针在字符串上的应用,指针是直接操作内存,当然它非常快,但是如果不能对指针熟练掌握的话,不太推荐使用指针数组,很容易出现那些我们检查不到的错误。
谢谢,帮大忙了hhhh
(๑•̀ㅂ•́)و✧!