黑马程序员——C语言之字符串与字符串函数
2015-07-07 10:39
302 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
22.字符串
①字符串是位于双引号中的字符序列,在内存中以“\0"结束,所占字节比实际多一个
注意:可以把一个字符常量赋值给一个字符变量(char ch = 'a'),但不能把字符串常量赋给字符变量 char ch = 'a'
②用字符数组保存字符串:
1) char str1[4] = {"abc"}; str[0]用来存'\0';
2) char str2[4] = "abc"; //注意此处数组长度必须是>=4;
3) char str3[] = "helloworld!";
③字符串的输出
用%s输入字符串,从给定的地址开始,一直输出字符,直到遇到\0就停止了。
printf("/s\n",str); == printf("/s\n",&str[0]; // 都是取首地址
④字符串的输入
%s接收键盘上输入的一个字符串,保存在以str为首地址的字符数组中
scanf("%s",str);
注意:1)如果输入的字符串有空格,则空格之后的字符无法接收保存。以%s的格式输入,scanf遇到空格,就结束了。
2)输入的字符要小于数组的长度;
3)要合理使用字符串结束符"\0";
请大家注意数组类型的含义:数据类型指的是数组所包含的元素的类型,而不是数组名的类型,数组名永远是一个指针,指向第一个元素的地址,即数组首地址。
23.字符串函数
puts和gets 必须包含头文件 stdio.h
strcat 需要包含string.h
①puts 输出字符串
1)puts函数可以自动换行;
2)也可是不是首地址,可以是元素的地址;
3)必须是字符数组;
4)不可以格式化输出
②gets 输入字符串
1)使用gets会给出一个警告;
2)可以接收空格;
3)不安全:数组长度是100,但是你输入了120个也可以,但是越界;
③strcat 连接字符串
1)格式:strcat(a,b); // 把字符串b连接在字符串a之后
2)oldStr的长度要足够大,只要能够保存下oldStr+newStr;
3)newStr把oldStr的最后一个字符\0给覆盖了;
④strcpy 拷贝字符串
1)strcpy(old,new); 把new覆盖old里;
2)oldStr长度要足够长;
⑤strcmp 字符串的比较函数
1)strcmp(str1,str2); abc def(大) 规则:比较字符的ascii码值,比较在字典中出现的顺序
2)比较的过程:逐个去两个字符串的字符对应位相比较,从第一位不相同的位开始,就能确定字符串大小;
3)strcmp(str1,str2); 函数有返回值 >0 :str1>str2 <0 :str1<str2 =0 :str1 = str2
⑤strlen 计算字符串长度,不包含\0
22.字符串
①字符串是位于双引号中的字符序列,在内存中以“\0"结束,所占字节比实际多一个
注意:可以把一个字符常量赋值给一个字符变量(char ch = 'a'),但不能把字符串常量赋给字符变量 char ch = 'a'
②用字符数组保存字符串:
1) char str1[4] = {"abc"}; str[0]用来存'\0';
2) char str2[4] = "abc"; //注意此处数组长度必须是>=4;
3) char str3[] = "helloworld!";
③字符串的输出
用%s输入字符串,从给定的地址开始,一直输出字符,直到遇到\0就停止了。
printf("/s\n",str); == printf("/s\n",&str[0]; // 都是取首地址
④字符串的输入
%s接收键盘上输入的一个字符串,保存在以str为首地址的字符数组中
scanf("%s",str);
注意:1)如果输入的字符串有空格,则空格之后的字符无法接收保存。以%s的格式输入,scanf遇到空格,就结束了。
2)输入的字符要小于数组的长度;
3)要合理使用字符串结束符"\0";
请大家注意数组类型的含义:数据类型指的是数组所包含的元素的类型,而不是数组名的类型,数组名永远是一个指针,指向第一个元素的地址,即数组首地址。
23.字符串函数
puts和gets 必须包含头文件 stdio.h
strcat 需要包含string.h
①puts 输出字符串
1)puts函数可以自动换行;
2)也可是不是首地址,可以是元素的地址;
3)必须是字符数组;
4)不可以格式化输出
②gets 输入字符串
1)使用gets会给出一个警告;
2)可以接收空格;
3)不安全:数组长度是100,但是你输入了120个也可以,但是越界;
③strcat 连接字符串
1)格式:strcat(a,b); // 把字符串b连接在字符串a之后
2)oldStr的长度要足够大,只要能够保存下oldStr+newStr;
3)newStr把oldStr的最后一个字符\0给覆盖了;
④strcpy 拷贝字符串
1)strcpy(old,new); 把new覆盖old里;
2)oldStr长度要足够长;
⑤strcmp 字符串的比较函数
1)strcmp(str1,str2); abc def(大) 规则:比较字符的ascii码值,比较在字典中出现的顺序
2)比较的过程:逐个去两个字符串的字符对应位相比较,从第一位不相同的位开始,就能确定字符串大小;
3)strcmp(str1,str2); 函数有返回值 >0 :str1>str2 <0 :str1<str2 =0 :str1 = str2
⑤strlen 计算字符串长度,不包含\0
相关文章推荐
- 每个Java程序员都应该Follow的10个Twitter账号
- 程序员从初级到高级的蜕变
- WEB前端面试题整理
- 黑马程序员--I/o文件文本读取方式
- PHP笔记——java程序员看懂PHP程序
- 最牛B的编码套路
- 黑马程序员-JAVA基础总结
- PHP中设置一个严格30分钟过期Session面试题的4种答案
- 程序员如何像写代码一样找女朋友
- 黑马程序员---OC基础---有、无参方法的声明及实现
- 【剑指Offer学习】【面试题43 : n 个锻子的点数】
- 【剑指Offer学习】【面试题42:翻转单词顺序vs左旋转字符串】
- 黑马程序员---OC基础---类的声明和实现
- 【剑指Offer学习】【面试题41:和为s 的两个数字vs 和为s 的连续正数序列】
- 黑马程序员---OC基础---常见错误汇总
- 摘录-IT企业必读的200个.NET面试题-10 XML的应用和处理
- 黑马程序员——Java基础--GUI图形化界面
- 黑马程序员---OC基础---类和对象
- 程序员典型图形开发流程
- 六度伯乐公司你职场的流动性