C语言篇:第七章(字符串)

1.字符串就是字符数组

  • 和整形一样......int data[ ] = {1,2,3,4,5}
  • 和整型数组一个道理......char str[ ] = {'h','e','l','l','0'}

  • 改进......char str[ ] = "hello"

  • 一般用char *p =“hello”

  • char str[ ] = "hello"与char *p =“hello”的区别,char str[ ]是字符串变量,可以被修改,char *p =“hello”是字符串常量,不允许被修改,

2.整形数组和字符数组的区别

字符数组结束是后面有个\0占一位 ,字符数组多一位

3.sizeof和strlen的区别

strlen计算有效字符的长度

4.动态开辟字符串

5.几种字符串常用的API

  • 输出字符串:puts()、printf("%s",p)
  • 获取字符串:scanf("%s",p)、gets----char * gets ( char * str )-----因为本函数可以无限读取,易发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值
  • 计算长度:strlen
  • 拷贝:strcpy----char *strcpy(char* dest, const char *src)、strncpy---char *strncpy(char *dest, const char *src, int n)
  • 断言:assert
  • 拼接:strcat---char *strcat(char *dest, const char *src)---把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\0”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。
  • 比较:strcmp---int strcmp(const char *s1,const char *s2)---若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数、strncmp---int strncmp ( const char * str1, const char * str2, size_t n )---功能是把 str1 和 str2 进行比较,最多比较前 n 个字节,若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 小于s2,则返回小于0的值。
  • 查找字符:strchr---char *strchr(const char *str, int c)---在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置
  • 查找子串:strstr---char *strstr(char *str1, const char *str2)---返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL
  • 字符串分割:strtok---char *strtok(char *str, const char *delim)---分解字符串 str 为一组字符串,delim 为分隔符,特别要注意分割处理后原字符串 str 会变,原字符串的改动是切分符原位置均更改为 '\0'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值