C/C++字符串

2021/4/15 20:28:21

本文主要是介绍C/C++字符串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

C风格字符串

char ss1[] = "hello";
char ss2[6] = "hello";  //ss1[5]不可以 
char ss3[] = {'h', 'e', 'l', 'l', 'o'};
char ss4[5] = {'h', 'e', 'l', 'l', 'o'};
char ss5[6] = {'h', 'e', 'l', 'l', 'o', '\0'};
//sizeof(ss)结果:6 6 5 5 6
//编译器会在ss1与ss2后自动添加null字符'\0'
  • C++提供的以 null 结尾的字符串处理函数
// 头文件<cstring>
//复制 
strcpy(ss1, ss2);
//拼接 
strcat(ss1, ss2);
//计算字符串长度
strlen(ss);
//比较函数
//ss1=ss2返回0,ss1<ss2返回-1,ss1>ss2返回1
strcmp(ss1, ss2);
//返回指针,指向字符ch在ss中第一次出现的位置
strchr(ss, ch);
char ss[] = "just do it";
char *p = strchr(ss, 't');
cout << p << endl;  //结果为:t do it
//返回指针,指向ss2在ss1中第一次出现的位置
strstr(ss1, ss2);

标准库类型string

string是可变长字符序列,定义在std中

  1. 初始化
// 初始化方法 
string s1;
string s2("hello");   //直接初始化 
string s3 = "hello";  //拷贝初始化 
string s4(3, '6');    //s4为666 
  1. I/O操作
// 输入时忽略开头的空白(空格符、换行符、制表符等),遇见下一处空白为止 
string s1, s2;
cin >> s1 >> s2;
cout << s1 << s2 << endl;

// 读取未知数量string:遇见EOF结束(windows下:ctrl+z,Enter)
string s;
while(cin >> s){
	cout << s << endl;
} 
// 读取未知数量整行,遇见EOF结束 
string line;
while(getline(cin, line)){
    cout << line << endl;
}
  1. 常用操作
string s;
s.empty();  //返回bool值
s.size();   //返回大小,size_type类型(unsigned类型) 
	
// ==、!=判断是否相同 
// <、>等比较时按照大小写敏感的字典顺序
	
s1 += s2;       //string对象相加 
s = s + "666";  //string对象与字面值相加
// 注意:两个字面值不能相加
s1 = s + "yes" + "no";    //正确
s2 = "yes" + "no" + s;    //错误
s3 = "yes" + ("no" + s);  //正确


这篇关于C/C++字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程