博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言字符串处理函数
阅读量:5117 次
发布时间:2019-06-13

本文共 2263 字,大约阅读时间需要 7 分钟。

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

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

字符串长度函数strlen

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

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\n", len);
  7. return 0;
  8. }

运行结果:

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

char str[]="C \0language";

那么输出结果就是:

The lenth of the string is 2

字符串连接函数 strcat

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

strcat(arrayName1, arrayName2);

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

strcat 将把 arrayName2 连接到 arrayName1 后面,并删去 arrayName1 最后的结束标志 '\0'。这就意味着,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 中,串结束标志 '\0' 也一同拷贝。请看下面的例子:

  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("\n");
  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\n", strcmp(a, b));
  9. printf("strcmp(a, c) : %d\n", strcmp(a, c));
  10. printf("strcmp(a, d) : %d\n", strcmp(a, d));
  11. return 0;
  12. }

运行结果:

strcmp(a, b) : 1
strcmp(a, c) : -1
strcmp(a, d) : 0

转载于:https://www.cnblogs.com/zhugeanran/p/8552410.html

你可能感兴趣的文章
hbase shell command
查看>>
DS18B20 Datasheet时序完全解读
查看>>
JavaScript学习笔记-正则表达式(RegExp对象)
查看>>
GJM : C#设计模式(1)——单例模式
查看>>
opencv3.3.1 + win64 + contrib + cuda 编译
查看>>
Practical numerical methods with C#
查看>>
ubuntu常用技巧积累
查看>>
四大组件之BroadcastReceive
查看>>
GHD hair styler
查看>>
用Spring3编写第一个HelloWorld项目
查看>>
uml中关联和依赖的辨析
查看>>
记一笔悲催——资源平台
查看>>
注入(Injection)
查看>>
VisualStudio“在查找预编译头使用时跳过"解决方案
查看>>
[转]python使用ctypes模块调用windowsapi获取系统版本
查看>>
Spring发布WebService
查看>>
freemarker 中文乱码问题解决办法
查看>>
DevOps到底是什么?
查看>>
web服务器原理
查看>>
强类型
查看>>