zoukankan      html  css  js  c++  java
  • C语言字符串处理函数

    C语言提供了丰富的字符串处理函数,例如字符串的输入、输出、合并、修改、比较、转换、复制、搜索等,使用这些现成的函数可大大减轻编程的负担。

    用于输入输出的字符串函数,例如printfputsscanfgets等,使用时应包含头文件stdio.h,使用其它字符串函数则应包含头文件string.h

    字符串长度函数strlen

    strlen 是 string length 的缩写,用来获得字符串的长度。所谓长度,就是包含多少个字符(不包括字符串结束标志 '')。语法格式为:

    strlen(arrayName);

    strlen 将返回字符串的长度,它是一个整数。请看下面的例子:

    1. #include <stdio.h>
    2. #include <string.h>
    3. int main(){
    4. char str[]="C language";
    5. int len = strlen(str);
    6. printf("The lenth of the string is %d ", len);
    7. return 0;
    8. }

    运行结果:
    The lenth of the string is 10

    需要说明的是,strlen 会从字符串的第 0 个字符开始计算,直到遇到字符串结束标志 ''。将上面代码中的 str 改为:

    char str[]="C language";

    那么输出结果就是:
    The lenth of the string is 2

    字符串连接函数 strcat

    strcat 是 string catenate 的缩写,意思是把两个字符串拼接在一起,语法格式为:

    strcat(arrayName1, arrayName2);

    arrayName1、arrayName2 为需要拼接的字符串。

    strcat 将把 arrayName2 连接到 arrayName1 后面,并删去 arrayName1 最后的结束标志 ''。这就意味着,arrayName1 的长度要足够,必须能够同时容纳 arrayName1 和 arrayName2,否则会越界。

    strcat 返回值为 arrayName1 的首地址。请看下面的例子:

    1. #include <stdio.h>
    2. #include <string.h>
    3. int main(){
    4. char str1[40]="My name is ";
    5. char str2[20];
    6. printf("Input your name:");
    7. gets(str2);
    8. strcat(str1,str2);
    9. puts(str1);
    10. return 0;
    11. }

    运行结果:
    Input your name:xiao p
    My name is xiao p

    字符串复制函数strcpy

    strcpy 是 string copy 的缩写,意思是字符串复制,语法格式为:

    strcpy(arrayName1, arrayName2);

    strcpy 会把 arrayName2 中的字符串拷贝到 arrayName1 中,串结束标志 '' 也一同拷贝。请看下面的例子:

    1. #include <stdio.h>
    2. #include <string.h>
    3. int main(){
    4. char str1[15], str2[]="C Language";
    5. strcpy(str1, str2);
    6. puts(str1);
    7. printf(" ");
    8. return 0;
    9. }

    运行结果:
    C Language

    strcat 要求 arrayName1 要有足够的长度,否则不能全部装入所拷贝的字符串。

    字符串比较函数strcmp

    strcmp 是 string compare 的缩写,意思是字符串比较,语法格式为:

    strcmp(arrayName1, arrayName2);

    arrayName1 和 arrayName2 是需要比较的两个字符串。

    字符本身没有大小之分,strcmp() 以各个字符对应的 ASCII 码值进行比较。strcmp() 从两个字符串的第 0 个字符开始比较,如果它们相等,就继续比较下一个字符,直到遇见不同的字符,或者到字符串的末尾。

    返回值:若 arrayName1 和 arrayName2 相同,则返回0;若 arrayName1 大于 arrayName2,则返回大于 0 的值;若 arrayName1 小于 arrayName2,则返回小于0 的值。

    【示例】对4组字符串进行比较。

    1. #include <stdio.h>
    2. #include <string.h>
    3. int main(){
    4. char *a = "aBcDeF";
    5. char *b = "AbCdEf";
    6. char *c = "aacdef";
    7. char *d = "aBcDeF";
    8. printf("strcmp(a, b) : %d ", strcmp(a, b));
    9. printf("strcmp(a, c) : %d ", strcmp(a, c));
    10. printf("strcmp(a, d) : %d ", strcmp(a, d));
    11. return 0;
    12. }

    运行结果:
    strcmp(a, b) : 1
    strcmp(a, c) : -1
    strcmp(a, d) : 0

  • 相关阅读:
    php优秀框架codeigniter学习系列——安装,配置
    设计模式学习系列——桥接模式
    elasticsearch学习笔记——相关插件和使用场景
    elasticsearch学习笔记——安装,初步使用
    设计模式学习系列——适配器模式
    php优秀框架codeigniter学习系列——前言
    设计模式学习系列——原型模式
    angular 自定义指令 directive transclude 理解
    inq to datatable group by 多列 实现
    CSS3 media 入门
  • 原文地址:https://www.cnblogs.com/zhugeanran/p/8552410.html
Copyright © 2011-2022 走看看