C++中字符数组和字符串string

C++中字符数组用char str[]可以用来表示一个字符串。

(1)  数组的大小和字符串的长度。

数组的大小一定要大于字符串的长度,因为系统会自动补上一个’\0’作为字符串的结束标志。当然对于未初始化的也补’\0’.

#include <iostream>
#include <string>

using namespace std;

int main()
{
 char str[11] = "I am happy";  //  系统会自动补上'\0'空字符作为结束标志,,未有初始化的也补'\0'
 //char str[10] = "I am happy";    // 出错  系统自动补上'\0' 此时字符数组长度不够
 //char str[13] = "I am happy";    //  后面未有初始化的也补上'\0' 为 I am happy\0\0\0
 if(str[10] == '\0')
 {
  cout << "hello world!!" << endl;
 }

cin >> str;      //  输入输出 
 cout << str << endl;
 return 0;
}

(2)getline()

getline函数可以读取文本或者输入流的一行,此时包括前面输入的空格,只到回车换行才结束

#include <fstream>
#include <iostream>
#include <string>

using namespace std;
int main()
{
    ifstream in("E:\\algorithmZack\\testString\\input.txt");
    if(!in)
    {
          cerr << "some errors happened";
          return -1;
    }
    string str;
  while(getline(in, str)) ///  getline 从文件input.txt中按行读取文件
    // while(getline(cin, str))  //  从输入流中按行读取  不包括换行符
    {
            cout << str << endl;
    }
    return 0;
}

C++中字符数组和字符串string

(3)比较,连接,赋值,实际长度用函数strcmp, strcat, strcpy,strlen

参见:

字符串string

(1)String可以看做一个类库,需要有包含头文件#include <string>.

操作包括:连接(+=,append) 赋值(=, assign) 比较(>=,compare) 查找(find)

替换(replace)  删除(erase) 插入(insert) 字串(substring) 交换(swap)

特性(length sizec_str)  正反向迭代器(interatorreverse_iterator)

其中使用append,assign,compare的好处在于参数可以为字符数组

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/06f8e9032b0a786a5141bfc636f31c0c.html