2021-01-24 字符串函数

字符串函数

  1. strlen 函数
    size_t strlen ( const char * str );
  • size_t 返回无符号数
  • 字符串已’\0’作为结束标志,strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包含’\0’)

在这里顺便区分一下strlen函数和sizeof函数的区别

用代码来描述:
#include<stdio.h>
#include<string.h>

int main(void)
{
	char arr1[] = "abc";
	char arr2[] = {'a','b','c'};
	printf("%d\n",sizeof(arr1)); //4 sizeof计算arr所占空间的大小  4个元素 char 3*1=3 此时计算包括\0 
	printf("%d\n",sizeof(arr2));//3 没有\0 
	printf("%d\n",strlen(arr1));	//3  strlen 计算字符串的长度 即'\0'之前的字符个数 
	printf("%d",strlen(arr2));  // 随机值 因为不知道什么时候遇到\0 
	return 0;
} 
  1. strstr 函数

const char * strstr ( const char * str1, const char * str2 );

  • 判断str2指向的字符串是否是str1指向的字符串的子串
  • 在str1中寻找str2,如果找的到,则返回str2第一个字母的地址,如果找不到,则返回0
  1. strcat函数 字符串追加
    char * strcat ( char * destination, const char * source );
  • 源字符串必须以’\0’结束

  • 目标空间必须足够的大,能容纳的下源字符串的内容

  • 目标空间必须可修改


#include<stdio.h>
#include<string.h>
int main(void)
{
	char arr1[20] = "hello";
	char arr2[] = "world";
	strcat(arr1, arr2);
	printf("%s", arr1);
	return 0;
}

2021-01-24 字符串函数

  1. strncat函数

char * strncat ( char * destination, const char * source, size_t num );
num 中写出需要追加字符串的长度

#include<stdio.h>
#include<string.h>
int main(void)
{
	char arr1[20] = "hello";
	char arr2[] = "world";
	strncat(arr1, arr2, 3);
	printf("%s", arr1);
	return 0;
}

2021-01-24 字符串函数
strcat与strncat在使用时

使用strcat函数不能是自己追加自己,而strncat函数可以

  1. strcpy函数 字符串拷贝
    char * strcpy ( char * destination, const char * source );
  • 源字符串必须以’\0’结束。

  • 会将源字符串的’\0’拷贝到目标空间

  • 目标空间必须足够大,以确保能存放源字符串

  • 目标空间必须可变

#include<stdio.h>
#include<string.h>
int main(void)
{
	char arr1[20] = "hello";
	char arr2[] = "world";
	strcpy(arr1, arr2);
	printf("%s", arr1);
	return 0;
}
  1. strncpy函数

char * strncpy ( char * destination, const char * source, size_t num );

  • 拷贝num个字符从源字符串到目标空间
  • 如果源字符串的长度小于num,则拷贝完源字符串后,在目标的后面追加0,直到num个
  1. strcmp函数 字符串的比较

int strcmp ( const char * str1, const char * str2 );

标准规定:

第一个字符串大于第二个字符串,则返回大于0的数字;
第一个字符串等于第二个字符串,则返回0;
第一个字符串小于第二个字符串,则返回小于0的数字。

#include<stdio.h>
#include<string.h>
int main(void)
{
	char arr1[20] = "hello";
	char arr2[] = "hella";
	int ret = strcmp(arr1, arr2);
	printf("%d", ret);
	return 0;
}

2021-01-24 字符串函数
8. strncmp 函数

int strncmp ( const char * str1, const char * str2, size_t num );

比较到出现另个字符不一样或者一个字符串结束或者num个字符全部计较完

上一篇:js数组


下一篇:数据分析与数据挖掘 - 04科学计算