程序员iOS Developer

iOS开发 -- C语言基础7(字符串)

2016-04-05  本文已影响108人  你以为的只是你以为

题外话:

不好意思,各位。因为清明节放假之前公司着急赶项目,所以没有跟进笔记,随后清明节放假回家,没有带电脑,但是心里一直惦记着这件事,希望各位不要见怪。另外,我想说的是C语言的笔记马上就要结束了,有条件的可以没事自己去练习一下代码。毕竟,熟能生巧,不会的千万要记得,多动手,多动脑,而不是理解不了就赶紧去查资料,问会的人。毕竟,每个人的理解不一样,表达方式也不一样,我所做的就是把我能理解的东西,展示给大家。


iOS开发 -- C语言基础7(字符串)

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。

三、字符串数组

二维字符数组,存储两个字符串数组,每个的长度为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]);

上一篇 下一篇

猜你喜欢

热点阅读