C语言中字符串的相关处理
来源:互联网 发布:微信域名备案 编辑:程序博客网 时间:2024/06/06 02:20
C语言中,没有提供专门的字符串类型,所以需要字符数组来处理字符串。
1. 定义并初始化字符数组有两种方式:
1)用字符为字符数组赋值
char word1[4]={'t','r','e','e'};
定义了一个长度为4的字符串word1。
2)用字符串常量为字符数组赋初值
char word2[5]="tree";
定义了一个长为5的字符串word2。
注意:由于word1与word2的赋值方式不同,它们的大小不同。这是由于C语言会自动在字符串的结尾添加一个终止符'\0',因此,word2中的字符数为4,而数组长度为5。
在用字符串初始化字符数组时,如果在定义字符数组的最大字符数比初始化的字符个数大,这在内存中自动为多余的元素赋值为'\0'。
2. 字符串的输入输出
1)使用scanf_s以及gets函数输入字符串
scanf_s("%s",word);
gets(word);
从键盘输入一个字符串,存储到字符数组word中,该字符串由换行符以前的所有字符组成。
scanf_s与gets的区别:
scanf_s读取的字符串中是不包含空白字符的,因为它会忽略开始的空白字符,以后当再次读到空白字符时,就会结束读取。而gets函数所读取的字符串可以包含空格。在使用时,要根据程序的功能进行合适的选择。
比如:
char word[10];scanf_s("%s",word);
如果在键盘上输入abcd def,则word的指为“abcd”。而
char word[10];gets(word);
如果在键盘上输入abcd def,则word的指为“abcd def”。
2)使用printf函数与puts函数输出字符串
printf("%s",word);将字符数组word以字符串的形式输出。输出时,第一次遇到结束标记‘\0’就停止输出,而不管其后还有没有别的字符。
另外,也可以使用puts函数来输出一个字符串,其格式为:
puts(数组名);
puts输出时将字符串介数标记'\0'转换成'\n',即输出完字符串后换行,如:
char word[]="abc",word1[]="def";puts(word);puts(word1);的输出结果为:
abcdef
3.与字符串处理有关的几个函数
char word[10]="abcd";printf("%d",strlen(word));输出的结果是字符串的实际长度4.
strcpy(字符数组名1,字符串2);这个函数将字符串2的所有字符一个一个地复制到字符数组1中,直到遇到结束标志'\0'为止,并把结束标志也写入到字符数组1中。
char word1[]="sichuan";char word2[]="chengdu";strcpy(word1,word2);
不能使用“word1=word2;”来代替,因为这句话试图用word2的地址去修改word1的数组地址,而字符数组的地址是不能在程序中修改的。
strncpy(字符数组1,字符串2,要复制的字符数);3)字符串连接函数strcat
strcat(字符数组名1,字符串2);取消第一个字符串中的结束标记,把第二个字符串拼接到第一个字符串的后面,并把拼接后的字符串存放到字符数组1中。要求第一个字符数组必须足够大。
strcmp(字符串1,字符串2);将两个字符串按照字典排序的方式进行比较,即从字符串1和字符串2的第一个字符开始从左至右依次按ASCII码进行比较,直到出现不相同的字符或碰到结束标志'\0'为止。函数的返回值是一个整数:
i)在不相同字符的ASCII码中,如果字符串1与字符串2相等,即它们的长度相等,且对应的字符也相等,则返回0;
ii)在不相同字符的ASCII码中,如果字符串1大于字符串2,则函数返回一个正整数;
iii)在不相同字符的ASCII码中,如果字符串1小于字符串2,则函数返回一个负整数;
注意:比较两个字符串是否相同,只能通过这个函数来比较,不能直接对存储他们的数组名进行比较,因为那样比较的是两个字符串地址的大小,而不是字符串的大小。例如:
char word1[]="chengdu";char word2[]="chengdz";printf("%d\n",strcmp(word1,word2));printf("%d\n",word1>word2);以上程序输出结果为:
-1 1
前一个-1表示字符串word1的值小于word2,而后一个1表示作为字符数组地址的word1大于word2这个字符数组的地址,该关系表达式的值为真。
4.其他常用字符串处理函数
函数名一般形式功能头文件strchrstrchr(字符串1,字符2)查找字符2在字符串2中第一次出现的位置string.hstrstrstrstr(字符串1,字符串2)找出字符串2在字符串1中第一次出现的位置string.hatofatof(字符串1)将字符串1转化为实型数值stdlib.hatoiatoi(字符串1)将字符串1转换为整型数值stdlib.hitoaitoa(指1,字符数值2,进制n)将值1按进制n转化为字符串,存储到字符数组2中stdlib.h
以上为C语言中关于字符串的内容。
- C语言中字符串的相关处理
- C语言中字符串的处理方式
- C语言中字符串的处理
- C语言中处理字符串的函数
- C语言中处理字符串的函数
- C语言中--字符串相关--的重要函数
- C语言中,时间调用处理的相关函数介绍
- C语言字符串的处理
- C语言的字符串处理
- C语言中字符串相关函数
- C语言中常用的几个字符串处理函数:
- C语言中对字符串的操作处理
- C语言中字符串的处理方式(一)
- c语言中常用的字符串处理函数
- C语言中字符串的处理方式(一)
- c语言中关于字符串的一些常规处理
- c语言中常用的字符串处理函数
- C语言中字符和字符串的处理函数总结
- hdu 2095 find your present(2)
- 用Win32写的定时关机程序
- 南阳理工 oj 596 谁是最好的coder
- 数据结构6.2
- 查询连续7天的数据sql问题
- C语言中字符串的相关处理
- HDU 1285
- JSR 303 - Bean Validation 介绍及最佳实践
- SocketServer 服务器
- python的datetime模块功能详解
- 学习ASM技术--条带化原理和rebalance
- CUDA编程指南阅读笔记(六)
- Lua table转C++数组
- 添加xib的view