zoukankan      html  css  js  c++  java
  • 字符串相关心得

    1.有一个字符串,如何判断这个字符串中是否含有某个字符串?

    答:比如string str = “abcdffdf.pdf”;如何判断这个字符串中是否含有cd,cd出现了几次。

    可以用 strstr()来判断是否存在。存在时,可以跳过第一个找到的“cd”,继续查找,以统计次数。

    或者STL加上string的操作函数。

    char * __cdecl strstr (//strstr源码
            const char * str1,
            const char * str2
            )
    {
            char *cp = (char *) str1;
            char *s1, *s2;
     
            if ( !*str2 )
                return((char *)str1);
     
            while (*cp)
            {
                    s1 = cp;
                    s2 = (char *) str2;
     
                    while ( *s1 && *s2 && !(*s1-*s2) )
                            s1++, s2++;
     
                    if (!*s2)
                            return(cp);
     
                    cp++;
            }
     
            return(NULL);
     
    }
    
    char * __cdecl strstr (
            const char * str1,
            const char * str2
            )
    {
            char *cp = (char *) str1;
            char *s1, *s2;
     
            if ( !*str2 )
                return((char *)str1);
     
            while (*cp)
            {
                    s1 = cp;
                    s2 = (char *) str2;
     
                    while ( *s1 && *s2 && !(*s1-*s2) )
                            s1++, s2++;
     
                    if (!*s2)
                            return(cp);
     
                    cp++;
            }
     
            return(NULL);
     
    }
    View Code
     
    strchr ()查找某字符在字符串中首次出现的位置
    strrchr()查找某字符在字符串中最后一次出现的位置
    strchr函数原型:char *strchr(char * str, int ch); 
    功能就是找出在字符串str中第一次出现字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置)
    ,找不到就返回空指针(就是 null)

    strstr 函数原型: char * strstr(char * str1,char * str2);
    功能就是找出在字符串str1中第一次出现字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),
    找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指针(就是 null)。

    假设字符串s ,s1 ,字符 c 
    要判断s中有没有c,就用 strchr(s,c); 如有则返回1,没有就返回0 。
    判断s中有没有串s1(也就是判断s1是不是s的一个子串),用 strstr(s,s1) ; 有则返回1,没有就返回0 。
     
     
  • 相关阅读:
    吉文斯旋转
    MinHash
    MinHash 原理
    Mahout SlopOne
    svd++
    openwrt定制管理
    苹果新的编程语言 Swift 语言进阶(九)--方法和下标
    2014年百度之星程序设计大赛
    unixbench安装及使用
    数据库连接-ADO.NET
  • 原文地址:https://www.cnblogs.com/Roni-i/p/7211173.html
Copyright © 2011-2022 走看看