C语言 字符串函数字符串

C语言学习入门 (四) 字符串、字符串数组、字符和字符串相关函数
字符串简介
* 在中,一个字符串可以用String类型来存储
String s = "MJ";
C语言中没有String这种类型。其实字符串就是字符序列,由多个字符组成,所以在C语言中,我们可以用字符数组来存储字符串。
* 字符串可以看做是一个特殊的字符数组,为了跟普通的字符数组区分开来,应该在字符串的尾部添加了一个结束标志'\0'。
'\0'是一个ASCII码值为0的字符,是一个空操作符,表示什么也不干。所以采用字符数组存放字符串,赋值时应包含结束标志'\0'。
* 字符串"mj"的存储情况如下(假设用字符数组char a[]来存储):char a[] = {'m', 'j', '\0'};
注意了,尾部有个'\0',如果没有这个结束标记,说明这个字符数组存储的并不是字符串
字符串的初始化
char a[3] = {'m', 'j', '\0'};
char b[3];
b[0] = 'm';
b[1] = 'j';
b[2] = '\0';
char c[3] = "mj"; //“”初始化时,会自动在字符串尾部加上一个\0结束符
char d[] = "mj";
char e[20] = "mj";
使用‘’初始化时,一定记得加‘\0’,
字符串数组简介
* 一维字符数组中存放一个字符串,比如一个名字char name[20] = "mj"
* 如果要存储多个字符串,比如一个班所有学生的名字,则需要二维字符数组,char names[15][20]可以存放15个学生的姓名(假设姓名不超过20字符)
* 如果要存储两个班的学生姓名,那么可以用三维字符数组char names[2][15][20]
字符串数组的初始化
char names[2][10] = { {'J','a','y','\0'},
{'J','i','m','\0'} };
char names2[2][10] = { {"Jay"}, {"Jim"}
char names3[2][10] = {"Jay","Jim" };
字符输出函数putchar
putchar(65); // A
putchar('A'); // A
int a = 65;
putchar(a); // Aputchar一次只能输出一个字符
字符输入函数getchar
c = getchar();
* getchar函数可以读入空格、TAB,直到遇到回车为止。scanf则不能读入空格和TAB。
* getchar一次只能读入一个字符。scanf则可以同时接收多个字符。
* getchar还能读入回车换行符,这时候你要敲2次回车键。第1次敲的回车换行符被getchar读入,第2次敲的回车键代表输入结束。
strlen函数 返回字符串长度不包括 \0,
计算时直到 \0为止
int size = strlen(“aab”);
strcpy函数
char s[10];
strcpy(s,"lmj");将右边的"lmj"字符串拷贝到字符数组s中
直到拷贝到\0为止
在s的尾部肯定会保留一个\0
strcat函数
char s[20] = “hello”;
// 将右边的字符串拼接到 s的尾部,连接完毕后在s的尾部保留一个\0
strcmp函数
两个字符串从左至右逐个字符比较(按照字符的ASCII码值的大小),直到字符不相同或者遇见'\0'为止。如果全部字符都相同,则返回值为0。
如果不相同,则返回两个字符串中第一个不相同的字符ASCII码值的差。即字符串1大于字符串2时函数返回值为正,否则为负。
strcmp(s1, “abd”);
输出一个字符串后自动换行,一次只能输出一个字符串到‘\0’结束
char a[]={‘a’,’b’,’\0’}; puts(a); puts(“ab”);
系统会自动在尾部加上一个结束标记\0
char a[10];
一次只能读取一个字符串 ,scanf 读取可以多个
gets可以读入包含空格、tab的字符串,直到遇到回车为止;scanf不能用来读取空格、tab
gets与scanf混用时发现:先gets再scanf没事,若先scanf再gets则gets不执行了,因为先gets表示第1个就是属于它的
char a[10];系统会自动在尾部加上一个结束标记\0
scanf("%s", a);因为a代表它的地址,所以不需要写成&a
scanf(“%f”, &a);
scanf(“%d, %s,%f”, &a,&b,&c);
接收多个时,分隔符可以是任意符号
包括空格、tab、回车C语言字符串操作函数大全|C语言字符串转换函数_C语言中文网
&&C语言辅导班&&&&
&&C++辅导班&&&&
&&算法/数据结构辅导班&&&&
读者QQ交流群:loading...
&&/&&&&/&&&&/&&
将浮点型数转换为字符串(四舍五入)
查找字符串并返回首次出现的位置
查找字符串并返回最后一次出现的位置
判断字符串是否相等(忽略大小写)
复制字符串
复制字符串
比较字符串的前n个字符
本站精品教程
loading...
验证消息:严长生软件编程到底难不难呢?简单的写个小玩意儿似乎也不需要什么太多的知识或者技巧,但是往深了看,每一门编程语言似乎精细奥妙的多。C语言便是一个我用了许久但是始终没有搞明白的一门编程语言。
今天学习了解到的新知识点,关于字符与字符串:
1,用单引号引起的字符,本质上代表的是一个数字;
2,用双引号引起的字符串代表的是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制为0的字符串’\0’初始化。
测试代码:
1 #include
3 char var_char =
4 char var_str[] = {'a','b','c',0};
5 char var_str_s[] =
7 int main(void)
printf("%d\n",var_char);
printf("%s\n",var_str);
printf("%s\n",var_str_s);
var_str与var_str_s其实是等效的两种方式。
C语言学习笔记(16) c语言字符串分析
摘要:总结了字符串的概念,字符串长度的计算方法,尝试实现了strlen和strcpy函数,最后介绍了受限和不受限的字符串函数。
一、字符串的概念
1.从概念上讲,c语言中并没有字符...
C语言中字符串的几种定义方式
char a[5]=&hello&;
char a[]=&hello&;
char* a=&hello&;
在C语言中怎样定义一个字符串并输入输出
在C语言中没有字符串类型,用字符数组处理字符串
字符数组定义:char 数组名 [常量表达式][常量表达式]
说明:一维字符数组,用于存储和处理一个字符串 。二维字符数组,用于同时存储和处理多个字...
C语言__字符串
C语言__字符串C语言中的字符串简介在C语言中,我们可以用字符数组来存储字符串。字符串可以看做是一个特殊的字符数组,为了跟普通的字符数组区分开来,应该在字符串的尾部添加了一个结束标志'\0'。'\0'...
C语言 输入单个字符
/* run this program using the console pauser or add your own getch, system(&pau...
C语言:定义字符串的几种方式
#include int main()
//定义字符串的几种方式
//字符串和字符数组的区别:最后一位是否是空字符
char names1[] = {'...
C语言字符串输入及输出的几种方式
1.字符串数组+初始化
char s1[]=&array&;
//字符数组
char s2[6]=&array&;
//数组长度=字符串长度+1,因为字符串末尾会自动添‘\0‘
C语言字符串
用双引号括起来的内容称为字符串字面量,也叫做字符串常量。双引号中的字符和编译器自动加入末尾的\0字符,都作为字符串储存在内存中,并且从ANSIC标准起,如果字符串字面量之间没有间隔,或者用空白字符分隔...
C语言中字符串的三种表示方法
1.在C语言中,是将字符串作为字符数组来处理的,字符串是逐个存放到数组元素中的,例如用一个一维的字符数组存放字符串&I am a boy.&,如下代码:char c[11] = {...
玩儿转C语言:字符和字符串
在C语言中,利用单引号和双引号分别表示字符和字符串,字符串是指一串以NUL字节结尾的零个或多个字符。因为字符串通常存储在字符数组中,所以C语言中不存在字符串类型。但在使用时,如果不能真正理解两者的本质...
没有更多推荐了,转义字符_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
所有的都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加&\&来表示常见的那些不能显示的ASCII,如\0,\t,\n等,就称为转义字符,因为后面的,都不是它本来的ASCII字符意思了。
转义字符字符表
所有的转义字符和所对应的意义:
ASCII码值(十进制)
退格(BS) ,将当前位置移到前一列
换页(FF),将当前位置移到下页开头
换行(LF) ,将当前位置移到下一行开头
回车(CR) ,将当前位置移到本行开头
水平制表(HT) (跳到下一个TAB位置)
垂直制表(VT)
代表一个反斜线字符''\'
代表一个单引号(撇号)字符
代表一个双引号字符
\?代表一个问号063\0
空字符(NULL)
1到3位八进制数所代表的任意字符
三位八进制
1到2位十六进制所代表的任意字符
二位十六进制
注意:区分,斜杠:&/& 与 反斜杠:&\& ,此处不可互换
转义字符字符型常量
字符型常量所表示的值是字符型变量所能包含的值。我们可以用ASCII来表示一个字符型常量,或者用单引号内加表示转义字符。
'A', '\x2f', '\013';
其中:\x表示后面的字符是,\0表示后面的字符是八进制数。例如十进制的17用十六进制表示就是
‘\x11’,用八进制表示就是‘\021’;
注意:在Turbo C 2.0中,字符型表示数的范围是-128到127,除非你把它声明为unsigned,这样就是0到255。
上面我们见到的\x,\n,\a等等都是叫转义字符,它告诉需要用特殊的方式进行处理。
转义字符组成
转义字符串(Escape String),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。
比如,要显示小于号(&),就可以写 & 或者 & 。
用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。
提示:实体名称(Entity)是区分大小写的。
备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。
转义字符编程语言
如HTML转义符、java 转义符、xml 转义符、 oracle 转义符、sql 转义符 、sqlserver 转义符、php 转义符、asp 转义符、vb转义符、 javascript 转义符等等,还有网址中的。
例如,HTML的& &&&&分别是&,&,&,",(C);的转义字符
XML只有5个转义符: & && & &
转义字符作用
转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,定义转义字符串的原因有两个:第一个原因是像“&”和“&”这类符号已经用来表示HTML标签,因此就不能直接当做文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。
其实所有编程语言,拥有转义字符的原因基本上是两点:一、使用转义字符来表示字符集中定义的字符,比如ASCll里面的及回车换行等字符,这些字符都没有现成的文字代号。所以只能用转义字符来表示 。二、某一些特定的字符在编辑语言中被定义为特殊用途的字符。这些字符由于被定义为特殊用途,它们失去了原有的意义。比如说Html中,&被HTML定义为标签的开始,所以当我们转入&时,HTML就会把它当作为开始,而不是当作一个&来看待。再如PHP 的双引号("),被PHP定义为字符串的外围标签,所以如果你在一对双引号里面,还想要使用双引号,只能使用转义字符了。不然PHP就会报错了。
从上面也可以看出转义无非是两种情况:1:将普通字符转为特殊用途,一般是编程语言中,用于表示不能直接显示的字符,比如后退键,回车键,等。2:用来将特殊意义的字符转换回它原来的意义。一般用在正则表达式中。还有有些脚本语言是弱类型,有些语言比如html 并不是编程语言,而是标记语言,有些语言只有一种类型 比如shell 脚本语言,这些语言中字符串都不加引号” ” ,或者可以不加引号“ ”,所以有时候需要转义字符说明某字符此时的身份是普通字符,而不是有特殊意义的元字符。
另外出于网站的安全。在数据写入数据库前,都会使用转义字符(函数)对一些敏感字符进行转义。这样做可以避免一些别有用心的人利用特殊符号的注入攻击。
转义字符显示空格
通常情况下,HTML会自动截去多余的空格。不管你加多少空格,都被看做一个空格。比如你在两个字之间加了10个空格,HTML会截去9个空格,只保留一个。为了在网页中增加空格,你可以使用 & 表示空格。
转义字符url
web 开发中通过问号(?)方式在浏览器地址栏中传值时。浏览器是通过“&”来区分问号后的参数个数的。 如果出现传值参数中带有“&”时,在接受页面就会出现错误,类似如下请求路径:/next.jsp?param1=hendhs89&furej & param2=sss
参数param1中含有转义字符“&” ,这样会导致被请求页的参数接收错误。
在传值前 通过 java.net.URLEncoder.encode(param1) 编码处理后,可将转义字符转为16进制;
1. + URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. / 分隔目录和子目录 %2F
4. ? 分隔实际的 URL 和参数 %3F
5. % 指定特殊字符 %25
6. # 表示书签 %23
7. & URL中指定的参数间的%26
8. = URL中指定参数的值 %3D
9. ! URL中指定参数的值 %21
转义字符如何避免
在编写网页时,如果直接在双引号之间输入路径,其中的“\”及其之后的文本易被误认为转义字符。为避免这一点,C#等语言只需在字符串的引号前加“@”符号(不包括外侧引号)。如:@ "c:\ab\cd\ef.jpg" 。
清除历史记录关闭扫一扫体验手机阅读
C语言字符串总领
<span type="1" blog_id="2047112" userid='
30篇文章,7W+人气,0粉丝
运维开发全攻略
¥51.0055人订阅
大数据时代的微服务之路
¥51.00526人订阅

我要回帖

更多关于 c语言定义字符串 的文章

 

随机推荐