常用字符串函数集合

   

  随着计算机科学的发展和计算机应用的推广,对字符串的处理越来越成为计算机的一项重要能力。当然,在acm中也时常要用到。现在,我就来总结下在acm中必须掌握的字符串函数:

  出现的顺序是按在acm中的使用频率来排的。

 

  头文件:#include<string.h> / #include<cstring> ,分别为 C 和 C++中的头文件。

  1.extern unsigned int strlen(char *s);

  ------>> 说明:

       求字符串的长度,即字符串中字符的个数,不包括字符串标识符 ‘\0'。

 

  2. extern int strcmp(const char * s1, const char * s2);

  ----->> 说明:

      字符串比较函数:const char *s1 , const char *s2 分别为需要比较的字符串。
      当 s1 < s2 时,返回为负数
      当 s1 = s2 时,返回 0
      当 s1 > s2 时,返回正数
      即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
 
 
  3. extern char *strcpy(char* dest, const char *src)
    extern char *strncpy(char *dest, char *src, int maxlen);
  ------>> 说明:
       两个都是字符串复制函数:前者是把从src地址开始且含有 '\0' 标志符的整个字符串复制到以dest开始的地址中,并且不管 dest 是否有足够的空间存下 src (容易造成缓冲区溢出)。而后者可以让你来从 src 中选一段字符内容复制到 dest 中,而且当dest存不下时,就会立即停止,所以相对前者安全。
 
 
  4. extern char *strstr(char *s1, const char *s2);
  ------->> 说明:
       若 s2 是 s1 的子串,则先确定 s2 在s1 的第一次出现的位置,并返回此位置到 s1 末尾的所有字符;如果 s2 不是 s1 的子串,则返回NULL。
      (注:若想返回str2在str1第一次出现的位置,不是这个函数。仔细观察会发现它放回的 s2 第一次出现的 s2 首地址
      比如有如下代码:  
char *s1="I Love You,Someboay";
cout << strstr(s1, "Some") << endl;

输出的是: "Somebody"

 

  5. extern char *strrev(char *s);
  ------>> 说明:
       字符串反转函数。把字符串 s 的所有字符的顺序颠倒过来(不包括空字符NULL)。
 
  6. extern char *strcat(char *dest,char *src);
  ------>> 说明:
       把两个不同的字符串连接为一个字符串,即把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
 
 
 
posted @ 2014-11-19 23:01  无道圣君  阅读(234)  评论(0编辑  收藏  举报