C++中的string与char数据类型以及路径字符串拼接以及写txt文件的问题

作为一个计算机小白,最近学习C++,这里做一个小记录,欢迎各路大神共同交流。
————————————————————————————分割线

C++中string与char的区别:
在C++中,字符串有两种,一种是字符串char[],另外一种是封装好的字符串类string,要区别理解。例如’a’是char, “a”是string,这两者都是普通的字符和字符串,和C语言中没什么不同,值得注意的是后者包含两个字符,末尾有一个隐身的’\0’。
其中string str = “a” 是C++ 封装好的string。C++中的char string和string不是一回事。当用到了”string”这个关键词,就不是普通的字符串,而是用到了封装后的类。
基本的字符类型是char类型,最小尺寸为8位字节。
string则是其中重要的一个标准库类型。String表示可变长的字符序列。
注意: char是定长字符串,所以定义时要么赋值,要么分配空间,string则不一样,不用管那么多。

char和string类型数据在合成文件路径时的应用:

使用char类型:

#include <iostream>
using namespace std;
int main()
{
    char* str1 = "E:\\vsproject\\opencv\\opencvTest\\opencvTest\\print\\";
    char*str2 = "i001.jpg";
    //方式一
    char str3[20];
    strcpy(str3, str1);
    strcat(str3, str2);
    cout << str3 << endl;
    //方式二
    //char str3[20];
    sprintf(str3,"%s%s",str1,str2);
    cout << str3 << endl;
    return 0;
}

使用string类型:

#include <iostream>
using namespace std;
int main()
{
    string str1 = "E:\\vsproject\\opencv\\opencvTest\\opencvTest\\print\\";
    string str2 = "i001.jpg";
    string str3;
    str3 = str1 + str2;
    cout << str3 << endl;
    cout << str3 << endl;
    return 0;
}

C++中strcat()函数

strcat函数用于连接char类型的字符串,使用时需要注意char类型的变量在定义时的空间大小,strcat(a,b)是将a,b连接后将值赋给了a,比如:

char a[10] = "aaa";
char b[10] = "bbb";
strcat(a,b);
//执行后 a"aaabbb"

大致可以理解为:
如果是string类直接想加就可以了str1+str2;
如果是char类,需要调用函数strcat,如strcat(ch1,ch2)

阅读更多

没有更多推荐了,返回首页