09.C语言字符串
来源:互联网 发布:淘宝店是什么意思 编辑:程序博客网 时间:2024/06/01 10:42
C语言字符串
一、字符串基础
注意:字符串一定以\0结尾。
Printf(“yang\n”);
其中yang为字符串常量,“yang”=‘y’+‘a’+‘n’+‘g’+‘\0’。字符串由很多的字符组成,通常使用字符数组来存储字符串,如char name[10]=“yang”;也可以以printf(name);的形式输出,即通过数组来访问字符串,但会有警告。因为默认情况下,printf函数只接受字符串常量作为参数(对变量并未写明)。
字符串的三种写法:
- Char name[8]=“yang”;//数组占用了8个字节的存储空间,但是只含有5个字符。
- Char name[8]={‘y’+‘a’+‘n’+‘g’+‘\o’};
- Char name[8]={‘y’+‘a’+‘n’+‘g’+‘0’};
这三种写法在内存中的表现都是一样的。
Char name[]={‘y’+‘a’};前面不写个数,不是一个字符串,只能说是一个普通的字符数组。
char name[]=“yang”;
Name[1]=‘o’;把字符串的第二个元素值由a改成o。
二、字符串使用注意点
(1)分析代码,了解\0的作用。
Char name[]=“yang”;
Char name2[]={‘o’+‘k’};
Printf(“name2=%s”,name2);
%s:根据右边的参数,打印字符串(遇到\0为止)
上面代码的打印结果为:okyang
下面是内存情况分析:
问1:Char name[]=“y\0ng”;则打印结果为什么?(oky)
问2:此时打印name的值,使用%s是多少?Y\0ng还是y?
(2)Strlen函数
Strlen函数计算字符串的长度(字符数)但不包括\0,是字符数不是字数。比如一个汉字占三个字符。
Strlen(“haha”);//长度为4
Strlen(“哈haha”);//长度为7而不是5
设
char name[]=“it\0cast”;
Strlen(name);值为2,因为strlen从字符串的地址开始计算,直到遇到\0为止。
假设
Char name[]=“itcast”;
Char name2[]={‘o’+‘k’};
Int size=strlen(name);
此时size的值为8。
(3)练习,编写一个函数char_contains(char str[],char c),如果字符串中包含字符c,则返回1,否则返回0。
Int char_contains(char str[],char c)
{
//遍历整个字符串
For(int i=0,i<strlen(str);i++)
{
If(str[i]==c)
Return 1;
}
Return 0;
}
//调用语句
Int result=char_contains(“yang”,‘a’);
//使用while循环
①. While(i<strlen(str))
②. While(str[i]!=‘\0’)
③. While(str[i])
④. Int i=-1;while(str[i++])
三、字符串数组
二维字符数组,存储两个字符串数组,每个的长度为1,下面是两种写法但存储情况是一样的。
Char name[2][10]={“jack”,“rose”};
Char name2[2][10]={
{‘j’+‘a’+‘c’+‘k’+‘\0’},
{‘r’+‘o’+‘s’+‘e’+‘\0’}
}
把rose输出:printf(“%s”,name2[1]);
输出k:printf(“%c”,name2[0][3]);
- 09.C语言字符串
- C语言格式化字符串
- C语言字符串函数
- C语言字符串函数
- 字符串操作--c语言
- C语言字符串操作
- 关于c语言字符串
- C语言字符串函数
- C语言字符串函数
- C语言字符串函数
- C语言字符串处理
- C语言字符串算法
- C语言字符串函数
- C语言 -- 字符串操作
- c语言 字符串函数
- C语言连接字符串
- C语言字符串函数
- c语言字符串函数
- 证券基础--发行体制
- html小需求——科技文章展示
- Cocos2D绘制纹理的一般方法
- [283]Move Zeroes
- Struts2的package的的命名空间(默认命名空间与根命名空间)
- 09.C语言字符串
- Android在layout xml中使用include
- 10.C语言指针
- 数据库应用之-------------事务
- IP地址分类
- spark中的SparkContext的textFile使用的小窍门
- 使用脚本获得 消耗Linux操作系统内存的前10个操作系统进程
- 使用V7包使安卓3.0以下版本兼容ActionBar
- 11.OC语言前期准备