strcpy,strlen函数和string类原型
一、strcpy函数原型:
char *strcpy(char *dest, const char *src);
二、strcpy函数功能:
strcpy函数的功能是将src所指向的字符串复制到dest所指向的字符串中,不包括'\0'。
三、strcpy函数参数:
1.dest:目标字符串,即将src字符串拷贝到dest字符串中。
2.src:源字符串,即要被拷贝到dest字符串中的字符串。
四、strcpy函数返回值:
函数返回dest指针,即目标字符串的起始地址。
五、strcpy函数使用注意事项:
1. 目标和源字符串不得重叠;
2. 目标字符串指针所指向的内存空间应足够大,以便存放复制后的源字符串;
3. strcat函数和strcpy函数均有缓冲区溢出的风险,请勿使用;
举例:
char str1[] = "Hello World!";
char str2[50];
strcpy(str2, str1);
printf("str1:%s
", str1);
printf("str2:%s
", str2);
六、strlen函数原型:
size_t strlen(const char *s);
七、strlen函数功能:
strlen函数的功能是计算字符串的长度,即不包括'\0'的字符个数。
八、strlen函数参数:
s:需要计算长度的字符串。
九、strlen函数返回值:
当s为空串时,返回0;否则返回s字符串中字符的个数。
十、strlen函数使用注意事项:
1. 字符串的长度不包括末尾的'\0';
2. 不要使用strlen去计算动态分配的字符串中的长度,因为不一定有'\0'。
举例:
char str[] = "Hello World!";
int len = strlen(str);
printf("Length of string: %d
", len);
十一、string类原型:
class string {
public:
string(); //构造函数,创建一个空的字符串
string(const string& str); //复制构造函数,创建一个与已有字符串完全相同的新字符串
string(const char* s); //构造函数,使用char类型的字符串初始化字符串
string& operator=(const char* s); //赋值运算符,使用char类型的字符串初始化字符串
string& operator=(const string& str); //赋值运算符,将一个与已有字符串完全相同的新字符串赋值给它
~string(); //析构函数,释放字符串所占用的内存
const char* c_str() const; //获取字符串的字符指针
size_t size() const; //获取字符串的长度
//其它成员函数省略
};
十二、string类功能:
string类是C++标准库提供的一个字符串类,它封装了字符串的常见操作。其中包括构造函数、复制构造函数、析构函数、赋值运算符、获取字符串的字符指针、获取字符串的长度等功能。
十三、string类使用注意事项:
1. 对string类对象的访问可以使用下标访问符[],例如str[0]代表字符串str的 个字符,str[1]代表字符串str的第二个字符,以此类推;
2. string类是动态分配内存的,所以你可以在程序中动态地调整字符串的大小;
3. 当string对象被销毁时,它所占用的内存也会被自动释放;
举例:
string str = "Hello World!";
cout << "Length of string:" << str.size() << endl;
cout << "The string is:" << str.c_str() << endl;
