首页 > 编程语言 > 详细

C/C++字符串使用整理

时间:2019-05-04 17:48:10      阅读:126      评论:0      收藏:0      [点我收藏+]

 首先,C语言中是没有专门的字符串类型的变量的,一般存储字符串都是使用字符char类型的数组。这一点有别于C++。

  ?字符串类型与一般的字符序列相比,最大的区别在于最后多了一个‘\0‘字符,它也被称作字符串结束符。注意,字符‘\0‘对应的ASCII码的值也是0。

1. 字符串与字符数组的区别

例1:

char s1[5]={‘h‘,‘e‘,‘l‘,‘l‘,‘o‘};  是字符数组

char s2[6]={‘h‘,‘e‘,‘l‘,‘l‘,‘o‘,‘\0‘};  或者  char s2[]="hello";  是字符串?(后一种系统自动加字符串结束符)

总结:有‘\0‘的才是字符串。

?2. 输入输出

对于上述例子中的s1,只能用%c循环打印每个字符;对于?s2,可以用%c循环打印,也可以用%s直接整体输出。?

使用printf()和%s整体输出字符串的规则:?遇到‘\0‘就停止。使用scanf()和%s整体输入字符串时,不能有空??白字符,例如空格等。

例2:

?char s2[]="he\0llo";  printf("%s",s2);  打印结果为he

scanf("%s",s2); 输入"   he llo",则s2为"he"?

?关于puts()和gets()

puts(str)会打印字符串str然后把‘\0‘转换成‘\n‘,相当于printf("%s\n",str)。也是遇到‘\0‘就停止。

gets(str)则不同于scanf,遇到空白字符不会停止,直到遇到回车字符才会停止读入。

注意:如果要使用gets()和puts(),需要加入头文件

3. 其它常用字符串处理函数

注意:以下函数都需要包括

strlen(str)  :返回str中有效字符个数,不包括‘\0‘

strcpy(str1,str2)   :将str2复制给str1

strcpyn(str1,str2,n)    :将str2的前n个字符复制给str1?

strcat(str1,str2)    :将str2连接到str1后面?

strcmp(str1,str2)    :按ASCII码比较,相等返回0,str1小返回负值,str1大返回正值?

strlwr(str)    :大写字母转换成小写字母

strlwr(str)    :小写字母转换成大写字母?

C/C++字符串使用整理

原文:https://www.cnblogs.com/4565aa/p/10809084.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!