黑马程序员——C语言常用字符串函数

 ——- android培训java培训、期待与您交流! ———-
 在string.h头文件中,包含了很多字符串函数。利用这些函数,可以帮我们方便的对字符串处理。下面,就对一些常用的字符串函数进行总结。

函数名称: strlen
函数原型: extern int strlen(char *s);
函数功能: 计算字符串s的(unsigned int型)长度
函数返回: 返回s的长度,不包括结束符NULL
所属文件: string.h


  #include <syslib.h>

  #include <string.h>

  main()

  {

  char *s="nihao";

  clrscr();

  printf("%d",strlen(s));       //输出为5

  getchar();

  return 0;

  }

函数名称: strcpy
函数原型: char* strcpy(char* str1,char* str2);
函数功能: 把str2指向的字符串拷贝到str1中去
函数返回: 返回str1,即指向str1的指针
参数说明:
所属文件: string.h

#include <stdio.h>   
#include <string.h>   
int main()   
{   
  char string[10];   
  char *str1="abcdefghi";   
  strcpy(string,str1);   //将字符串str1拷贝到字符串string
  printf("the string is:%s\n",string);   
  return 0;   
}  

函数名称: strcat
函数原型: char* strcat(char * str1,char * str2);
函数功能: 把字符串str2接到str1后面,str1最后的’\0’被取消
函数返回: str1
所属文件: string.h

#include <stdio.h>   
#include <string.h>  
int main()   
{   
  char buffer[80];  
  strcpy(buffer,"Hello ");   //将"hello "宝贝到buffer中
  strcat(buffer,"world");    //将"world"连接到buffer后边
  printf("%s\n",buffer);   
  return 0;   
}  

函数名称: strcmp
函数原型: int strcmp(char * str1,char * str2);
函数功能: 比较两个字符串str1,str2.
函数返回: str1小于str2,返回负数;str1等于str2,返回 0;str1大于str2,返回正数.
所属文件: string.h

#include <string.h>   
#include <stdio.h>   
int main()   
{   
  char *buf1="aaa", *buf2="bbb",*buf3="ccc";   
  int ptr;   
  ptr=strcmp(buf2, buf1);   
  // str1小于str2,返回负数;str1等于str2,返回 0;str1大于str2,返回正数.  
  if(ptr>0)   
    printf("buffer 2 is greater thanbuffer 1\n");   
  else   
    printf("buffer 2 is less thanbuffer 1\n");   
  ptr=strcmp(buf2, buf3);   
  if(ptr>0)   
    printf("buffer 2 is greater thanbuffer 3\n");   
  else   
    printf("buffer 2 is less thanbuffer 3\n");   
  return 0;   
}  

函数名称: strrev
函数原型: char *strrev(char *s)
函数功能: 将字符串中的所有字符颠倒次序排列
函数返回: 指向s的指针
所属文件: string.h

#include<string.h>   
#include<stdio.h>   
int main()   
{   
  char forward[]="string"; //原文中定义为char*是不对的,指向代码段的指针内容是不可变的  
 printf("Before strrev():%s",forward);  
 //输出Beforestrrev():string  
 strrev(forward);   
 printf("Afterstrrev(): %s",forward);  
  //After strrev():gnirts  
  return 0;   
}  

函数名称: strtok
函数原型: char *strtok(char *s1, const char *s2)
函数功能: 分解s1字符串为用特定分隔符分隔的多个字符串(一般用于将英文句分解为单词)
函数返回: 字符串s1中首次出现s2中的字符前的子字符串指针
参数说明: s2一般设置为s1中的分隔字符.规定进行子调用时(即分割s1的第二、三及后续子串)第一参数必须是NULL .在每一次匹配成功后,将s1中分割出的子串位置替换为NULL(摘下链中第一个环),因此s1被破坏了.函数会记忆指针位置以供下一次调用
所属文件: string.h

#include<string.h>   
#include<stdio.h>   
int main()   
{   
  char *p;   
  char*buffer;   
  char*delims={ " .," };  
 buffer=strdup("Find words, all of them.");   
 printf("%s\n",buffer);   
 p=strtok(buffer,delims);   
 while(p!=NULL){   
   printf("word: %s\n",p);   
   p=strtok(NULL,delims);   
  }   
 printf("%s\n",buffer);   
  return 0;   
}//根据测试,可以随时给strtok的第一个参数输入一个新的字符串,开始新字符串的分隔  

函数名称: strstr
函数原型: char* strstr(char* str1,char* str2);
函数功能: 找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)
函数返回: 返回该位置的指针,如找不到,返回空指针
参数说明:
所属文件: string.h

#include<stdio.h>   
#include<string.h>   
int main()   
{   
  char*str1="Open Watcom C/C++",*str2="Watcom",*ptr;   
 ptr=strstr(str1,str2);   
 printf("The substring is:%s\n",ptr);   
  return 0;   
}  

以上就是常用的一些字符串函数,适当的运用这些函数,可以大大提高对字符串处理的速度。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值