字符串、内存函数的介绍(进阶)
1. strlen(求字符串长度)
size_t strlen(const char *str)//(size_t是一个无符号整数)
需要注意的点:
- 参数指向的字符串必须要以
‘\0’
结尾; - 其返回是值是个无符号整数,且不包含
‘\0’
。
#include <stdio.h>
#include <string.h>
int main()
{
const char*str1 = "abcdef";
const char*str2 = "bbb";
if(strlen(str2)-strlen(str1)>0)
{
printf("str2>str1\n");
}
else
{
printf("srt1>str2\n");
}
return 0;
}
2. strcpy(字符串拷贝)
char* strcpy(char * destination, const char * source );
需要注意的点:
- 源字符串必须以
‘\0’
结尾,在拷贝时‘\0’
也会发生拷贝; - 目标空间必须足够大且空间可变。
#include<stdio.h>
#include <string.h>
#include<Windows.h>
void Print(char *arr,int num)
{
int i = 0;
for (i = 0; i < num; i++){
printf("%c", arr[i]);
}
printf("\n");
}
int main()
{
const char* src = "hello world!";
char dst[16];
strcpy(dst, src);
Print(dst,strlen(dst));
system("pause");
return 0;
}
3. strcat(字符串拼接)
char * strcat ( char * destination, const char * source );
需要注意的点:
- 源字符串必须以 ‘\0’ 结束;
- 目标空间必须可修改,且足够大,能容纳下源字符串的内容;
#include<stdio.h>
#include <string.h>
#include<Windows.h>
void Print(char *arr,int num)
{
int i = 0;
for (i = 0; i < num; i++){
printf("%c", arr[i]);
}
printf("\n");
}
int main()
{
const char* src = "hello ";
char dst[16] = "world!";
strcat(dst, src