学习目标:
学习掌握C++之字符串拷贝、拼接、比较函数
学习内容:
字符串拷贝、拼接、比较strcpy、strcat、strcmp:
需要包含cstring文件
😊😊😊
strlen:获取字符串长度,返回字符串长度size_t类型
strcpy:拷贝字符串,将目标字符串拷贝到源字符串中,进行覆盖,而不是拼接
strncpy:选择拷贝n个字符,将目标字符串拷贝到源字符串中,从首地址开始覆盖,若后面部分没有覆盖到,将保留
strcat:字符串拼接,将后面的目标字符串拼接到源字符串中,但不允许超出原目标的内存空间
strncat:选择拼接n个字符,字符串拼接,将后面的目标字符串拼接到源字符串中,但不允许超出原目标的内存空间
strcmp:字符串比较,按ascii码逐位比较,返回值相等为0,大于为>0,小于为<0(不同操作系统肯不一样,可能返回ascii码差值)
strncmp:字符串前n个字符比较,其他与strcmp无异
😊😊😊
学习代码:
实例学习:
#include<iostream>
#include<cstring>
#pragma warning(disable:4996)
using namespace std;
int main() {
//strlen
char arr[20]="helloworld";
size_t a = strlen(arr);
cout << a << endl;
cout << arr << endl;
//strcpy
char* p1 = strcpy(arr, "iishi");
cout << p1 << endl;
cout << arr << endl;
//strncpy
char* p2 = strncpy(arr, "nihao", 2);
cout << p2 << endl;//只覆盖前面两个字符,后面并未改变
cout << arr << endl;
//strcat
char* p3 = strcat(arr, "!");
cout << p3 << endl;
//strncat
char* p4 = strncat(arr, "!23", 2);//拼接!2在后面
cout << p4 << endl;
//字符串比较
const char* p5 = "hello";
const char* p6 = "world";
int num=strcmp(p5, p6);//按顺序比较ascii码大小,相等返回0.大于返回正数,小于返回负数
cout << num << endl;
//strncmp 比较前n个字符
int c=strncmp("add 10 10", "add", 3);
cout << c << endl;
//stricmp 忽略大小写比较
int cc = stricmp("hello", "HELLO");
cout << cc << endl;
//strincmp 比较前n位,忽略大小写
return 0;
}