<string.h>中常用的库函数

1.strlen

  • 原型:unsigned int strlen(char *str);
  • 功能:计算并返回一个字符串的长度。在计算字符串长度时,没有把字符串结束符(\0)计算在内。
  • strlen只能用于计算字符串的长度,不能用于计算各种类型的数组长度。

2.strcmp

  • 原型:int strcmp( const char *str1, const char *str2);
  • eg:
    char *str1, *str2;
    if(strcmp(str1,str2)<0)
        ...
    else if(strcmp(str1,str2)>0)
        ...
    else if(strcmp(str1,str2)==0)
        ...
    ......

     

  • 功能:比较str1和str2这两个字符串的大小。比较的规则是从左往右比较两个字符串对应位置的字符的ASCII码值的大小,当码值不同也就是两个对应位置上的字符不相同时,或者遇到字符串结束符(\0),则返回结果。(当str1<str2时,返回负数;当str1=str2时,返回0;当str1>str2时,返回正数)

3.strcpy

  • 原型:char *strcpy(char *to, const char *from);
  • 功能:将以from为起始地址的字符串复制到以to为起始地址的地址空间中。字符串中的字符串结束符(\0)也会被复制过去。(to的空间大小一定要能够放得下str2中的字符串才可以)

4.strcat

  • 原型:char *strcat(char *str1, const char *str2);
  • 功能:把字符串str2连接到字符串str1后面,形成一个新的字符串。str2连接到str1后面时会自动覆盖掉str1原来的字符串结束符(\0),str2中的字符串结束符会一块连接过来。

5.strstr

  • 原型:char *strstr(const char *str1, const char *str2);
  • eg:
char str1[10], str2[10], *p;
scanf("%s%s", str1, str2);
p=strstr(str1,str2);
if(p==NULL)
    puts(  "Not Found!" );
else
    puts(p);
  • 功能:在字符串str1中查找是否存在字符串str2。如果存在,则返回一个指针,其指向字符串str2首次出现在字符串str1中的位置;如果不存在,则返回NULL。

6.strtok

  • 原型:char *strtok(char *str1, const char *str2);
  • eg:
char str1[]="acmbug tianlalo#csg";
char str2[]=" #";//空格和#都作为分割符
char *result = NULL;
result = strtok(str1,str2);
result = strtok(NULL,str2);
//结果为acmbug 
//      tianlalo
//      csg
  • 功能:把字符串str1按照str2中的字符分割成若干个字符串。str1是待分割的字符串,str2中存放的是作为分隔符的字符。返回值是被分割下来的字符串的首地址,当没有被分割下来的字符串时,则返回NULL。
  • 注意:在用这个函数时,要把作为分隔符的字符全部写在str2中,书写方式和写字符串常量一样。另外,在第一次调用strtok函数时,第一个参数要写str1,之后的每次调用,第一个参数都要写成NULL!

7.memset

  • void *memset(void *buffer, int ch, size_t count);
  • eg:
int a[5], i;
memset( a, 0, sizeof(a) );
for(int i=0; i<5; i++){
    printf("%d", a[i]);
}
//将数组中的每个元素都置为0
  • 功能:将一段内存置为某个值
  • 注意:memset只能将整型数组所有元素的值置为0或-1,当置为其他值时,程序编译运行虽然是正确的,但输出该数组的元素会发现其值与之前置的值不一样,这与memset的内部机制有关。用memset为char型数组置任何字符都是可以的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值