c语言笔记-------字符串操作

=字符串==========
C语言里没有字符串这种数据类型
int char 。。。。。

字符串表示方法:
1.
char *p = “hello” ;

printf(“p %s\n”,p);

实际上储存在内存的常量区(只读区),不能修改

2.使用字符型数组处理字符串—可以进行修改

字符串数组=========
数组 : 一系列相同类型数据的集合

char buf[5];//定义了一个可以保存5个字符的数组
比如:

//char buf[20] = {‘h’,‘e’,‘l’,‘l’,‘o’};//可以保存20个字符以内字符串
char buf[20] = “hello”;//一般使用这种方式初始化字符型数组

buf[0] ‘h’
buf[1] ‘e’
buf[2] ‘l’
buf[3] ‘l’
buf[4] ‘o’
buf[5] ‘\0’ //字符串结束的标志

从键盘获取字符串

scanf(“%s”,buf);
gets()

=字符串操作函数=====
strlen

 size_t  strlen (const char* str);

计算的是字符串str的长度,从字符的首地址开始遍历,以 ‘\0’ 为结束标志,然后将计算的长度返回,计算的长度并不包含’\0’。下面是库中的strlen()函数
函数的参数为------const char* str:字符指针
返回值的类型------size_t:无符号整数(即:unsigned int)

strcmp

int strcmp( const char *string1, const char *string2 );

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

strncmp

int My_strncmp(const char* str1, const char* str2, int num)

用法与strcmp 类似
strncmp()函数首先将str1字符串的第一个字符的ACSII值减去str2第一个字符的ACSII值(自左向右比较前n个字符,直到出现不同的字符或遇’\0’为止)
返 回 值:(与strncmp相同)str1 = str2 则返回0,
str1 > str2 则返回大于0的值,
str1 < str2 则返回小于0的值

strcat

 char *strcat(char *dest, const char *src)

strcat函数又被称为是字符串追加/连接函数,它的功能就是在一个字符串后面追加上另外一个字符串。

strncat

char* strncat(char* dest, const char* src, int num)

用法与 strcat 类似

1、dest要有足够的空间来容纳要拷贝的字符串
2、strncat会将dest字符串最后的’\0’覆盖掉,字符追加完成后,再追加’\0’
3、如果num大于字符串src的长度,那么仅将src全部追加到dest的尾部;如果num小于字符串src的长度,该字符会将src的所有字符附加在dest末尾。无论哪种情况,都会在新字符串的末尾添加空字符。

返 回 值:返回dest字符串的起始地址

strcpy

char *strcpy(char* dest, const char *src);

作用:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间,也就是把含有转义字符’\0’即空字符作为结束符,把这之前的内容复制到dest中。

strncpy

char *strncpy(char *dest, const char *src, int n) 

用法与strcpy 类似

当src字符串长度小于n时,则拷贝完字符串后,剩余部分将用空字节填充,直到n个strncpy不会向dest追加’\0’。src和dest所指的内存区域不能重叠,且dest必须有足够的空间放置n个字符

strtok

 char *strtok(char s[], const char *delim);

strtok函数的作用是把字符串以规定的字符分割开:
参数
str – 要被分解成一组小字符串的字符串。
delim – 包含分隔符的 C 字符串。
注意
strtok函数会破坏被分解字符串的完整,调用前和调用后的s已经不一样了。如果要保持原字符串的完整,可以使用strchr和sscanf的组合等。

strstr

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


strstr()是一个参数为两个字符指针类型,返回值是char类型的函数,它用于找到子串(str2)在一个字符串(str1)中第一次出现的位置。这里因为传进来的地址指向的内容不会在发生改变,所以我们在两个形参(char)前加上const.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值