66 C语言字符串处理函数
来源:互联网 发布:nba2012东部决赛数据 编辑:程序博客网 时间:2024/06/14 16:45
C学习网:链接->C学习网
C训练网:链接->C训练网
C语言提供了丰富的字符串处理函数,例如字符串的输入、输出、合并、修改、比较、转换、复制、搜索等,使用这些现成的函数可大大减轻编程的负担。用于输入输出的字符串函数,例如
printf
、puts
、scanf
、gets
等,使用时应包含头文件stdio.h
,使用其它字符串函数则应包含头文件string.h
。字符串长度函数strlen
strlen 是 string length 的缩写,用来获得字符串的长度。所谓长度,就是包含多少个字符(不包括字符串结束标志 '\0')。语法格式为:strlen(arrayName);
strlen 将返回字符串的长度,它是一个整数。请看下面的例子:
- #include <stdio.h>
- #include <string.h>
- int main(){
- char str[]="C language";
- int len = strlen(str);
- printf("The lenth of the string is %d\n", len);
- return 0;
- }
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 的首地址。请看下面的例子:
- #include <stdio.h>
- #include <string.h>
- int main(){
- char str1[40]="My name is ";
- char str2[20];
- printf("Input your name:");
- gets(str2);
- strcat(str1,str2);
- puts(str1);
- return 0;
- }
Input your name:xiao p
My name is xiao p
字符串复制函数strcpy
strcpy 是 string copy 的缩写,意思是字符串复制,语法格式为:strcpy(arrayName1, arrayName2);
strcpy 会把 arrayName2 中的字符串拷贝到 arrayName1 中,串结束标志 '\0' 也一同拷贝。请看下面的例子:
- #include <stdio.h>
- #include <string.h>
- int main(){
- char str1[15], str2[]="C Language";
- strcpy(str1, str2);
- puts(str1);
- printf("\n");
- return 0;
- }
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组字符串进行比较。
- #include <stdio.h>
- #include <string.h>
- int main(){
- char *a = "aBcDeF";
- char *b = "AbCdEf";
- char *c = "aacdef";
- char *d = "aBcDeF";
- printf("strcmp(a, b) : %d\n", strcmp(a, b));
- printf("strcmp(a, c) : %d\n", strcmp(a, c));
- printf("strcmp(a, d) : %d\n", strcmp(a, d));
- return 0;
- }
strcmp(a, b) : 1
strcmp(a, c) : -1
strcmp(a, d) : 0
阅读全文
0 0
- 66 C语言字符串处理函数
- c语言字符串处理函数
- C语言字符串处理函数
- c语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言处理字符串函数
- C语言字符串处理函数
- C语言 字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- C语言字符串处理函数
- 2017.5.29-6.3 城市规划 思考记录(非常不容易)
- java中String类型变量的赋值问题
- 第三篇 磁盘分区的问题
- Hadoop启动报Error: JAVA_HOME is not set and could not be found解决办法
- 最全面的 Spring 学习笔记
- 66 C语言字符串处理函数
- Linux内核链表深度分析
- POJ 3057 <二分图匹配>
- 使用webdriver扒取网站小说(二)-----进阶篇(分层数据驱动)
- 第四篇 安装系统与多重引导
- 用Nodejs完成自己的个人博客
- Instagram 在 PyCon 2017 的演讲摘要
- sql执行顺序
- React Native实现弹出选择框