zoukankan      html  css  js  c++  java
  • 字符串操作总结

    字符串复制

    C/C++ 中函数原型char *strcpy(char *destin, char *source),将source字符串复制到destin

    C/C++ 语言示例程序:

    字符串复制

    C/C++ 中函数原型char *strcpy(char *destin, char *source),将source字符串复制到destin

    C/C++ 语言示例程序:

     
     
    1
    #include <stdio.h>
    2
    #include <string.h>
    3
    int main() {
    4
        char name[10];
    5
        char *str = "jisuanke";
    6
        strcpy(name, str);
    7
        printf("%s
    ", name);
    8
        return 0;
    9
    }

    字符串拼接

    C/C++ 中函数char *strcat(char *dest, char *source),可以将source字符串拼接到dest后面。注意,dest必须有足够的空间来容纳拼接出的字符串。

    C/C++ 示例程序:

     
    #include <string.h>
    
    #include <stdio.h>
    int main() {
    
        char dest[25];
    
        char *str1 = "Hello", *str2 = " ", *str3 = "jisuanke";
    
        strcat(dest, str1);
    
        strcat(dest, str2);
    
        strcat(dest, str3);
    
        printf("%s
    ", dest);
        return 0;
    
    }
     

    字符串比较

    C/C++ 中函数int strcmp(char *str1, char *str2),从第一个字符开始逐字符比较两个字符串的 ASCII 码。如果下标为 ii的字符不相等,则函数返回str1[i] - str2[i]。如果两个字符串完全相同,则会 返回 00。

    C/C++ 示例程序:

    #include <string.h>
    #include <stdio.h>
    int main() {
        char *str1 = "cd", *str2 = "abc";
        int res = strcmp(str1, str2);
        if (res > 0) {
            printf("%s is greater than %s
    ", str1, str2);
        } else if (res == 0) {
            printf("%s is same as %s
    ", str1, str2);
        } else {
            printf("%s is less than %s
    ", str1, str2);
        }
        return 0;
    }

    strncmp

    int strncmp ( const char * str1, const char * str2, size_t n );
    【参数】str1, str2 为需要比较的两个字符串,n为要比较的字符的数目。
    字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strncmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,直到字符结束标志'',若差值不为0,则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。注意:要比较的字符包括字符串结束标志'',而且一旦遇到''就结束比较,无论n是多少,不再继续比较后边的字符。
    【返回值】若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 若小于s2,则返回小于0的值
    例如:比较a中有多少个b:
     
        int ans=0;
        for(int i=0;i<lena-lenb+1;i++)
        {
            //cout<<lenb<<endl;
            if(strncmp(a+i,b,lenb)==0) ans++;
        }
     
  • 相关阅读:
    android布局几点随想
    android_handler(一)
    android surfaView surfaHolder video 播放
    java_synchronized 用法
    android_viewFlipper(一)
    android_handler(二)
    解析pdf文档 (lucene3.5)
    Lucene 搜索(小程序)(Lucene3.5)
    运算符重载(++,<<,>>Data类的重载)
    线程池小程序(Java)
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/6390467.html
Copyright © 2011-2022 走看看