重写string.h中的字符串操作函数--strspn和strcspn

函数原型:size_t strspn(const char *string, const char *strcharset)
返回值说明:返回一个整形值,指明字符串strcharset中开头的字符有多少指定的字符。如果返回0说明,在字符串string中未找到指定的字符。
参数说明:
 string:
'/0'结尾的字符串。
 strcharset:
指定的字符串,以'/0'结尾。
函数说明:
  
用来计算字符串string中的开头的字符中指定字符(即strcharset)的个数。
举例说明:


   
char string[] = "1234";
   
char strcharset[] = :01234567";
   
int len = strspn(string, strcharset);//len的值为4
   char string2[] = "8123";
   
int len2 = strspn(string, strcharset);//len2的值为0
  char string3[] = “128676”;
  
int len3 = strspn(string, strcharset);//len3的值为2


 
函数实现:

size_t strspn(const char *stringconst char *strcharset)
{
assert((NULL != 
string) && (NULL != strcharset));
 
const char *p;
 
const  char *s;
 size_t count  = 0;
 
for(p  = string; *p != ''; p++)
 {
   
for(s = strcharset; s !='/0 '; s++)
    {
      
if(*p = =*s)
         
break;
   }
 
if(*a == '/0')
  
return count;//如果在指定串中找不到,则退出,返回个数
  count ++;//否则count1,继续执行
}

return count;
}

   
函数原型:size_t strcspn(const char *string, const char *substrset)
返回值说明:返回一个整形值,指明在字符串string开始的字符中,有多少个不在指定的字符串中。如果string的第一个字符在字符串substrset中,则返回0.
参数说明,与strspn相同。
函数说明:
  strcspn
strspn正好相反,它所计算的是在string开始的字符中,有多少个不在指定的字符串(即substrset)中。strcspnc代表complement(补充物)。
举例说明:

const char *str="hello";
const char *substrset="lo";
int len=strcspn(str, substrset);//len 的值为2
const char *strset2 = “h";
int len2 = strcspn(str, strset2);//len的值为0
const char *strset3 = ”“;//如果指定串为空串,即只有结束符'

函数实现:
size_t strcspn(const char *str, const char *strset)
{
    assert((NULL != str) && (NULL != strset));
    const char *left_str;
    const char *right_str;
    size_t count = 0;
    for (left_str = str; *left_str != '/0'; left_str ++)
    {
        for (right_str = strset;*right_str != '/0'; right_str++)
        {
            if (*left_str == *right_str)
            {
                break;
            }//
如果查找到相同的字符则退出
        }
        if (*left_str == *right_str)
        {
            return count;
        }//
如果有相同的字符,则查找结束,返回结果
        count ++;
    }
    return count;
}

你可能感兴趣的:(c,String,null)