1.字符数组:

char str[]=”sbdc”;
            char str2[]={“abdcdef”};

char str2[]={‘a’,’d’,’f’,’g’},想用printf(“%s”,str)这种格式输出,会遇到如下的结果: 

ios plist保存数组 数组怎么保存字符串_字符串

printf这个函数是遇到’\0’就结束,所以解决的方法是:char str2[]={‘a’,’d’,’f’,’g’,’\0’},结果如下:

 

ios plist保存数组 数组怎么保存字符串_字符数组_02

 

或者解决方法为:

ios plist保存数组 数组怎么保存字符串_字符数组_03

也就是说,定义数组的时候,也设置了数组的长度也可以输出理想的结果!

2.字符串指针(指向一个字符串的指针变量)

 

例如: int  *p;  分两种:

 

字符指针(总结:用单引号的为字符指针)

 

     char ch=’a’;

 

     char *s=&ch;

 

字符串指针(用双引号的为字符串指针)

 

      cahr  *str=”abc”;

 

str,str存放的是 “abc”这个字符串的首地址,这个首地址就是第一个字符的地址  &a.

 

   用字符串指针遍历读取字符串的每个字符两种方法:

 

ios plist保存数组 数组怎么保存字符串_字符数组_04

 

( str+1 表示指向下一个元素的地址)

ios plist保存数组 数组怎么保存字符串_字符数组_05

 

注意:字符串指针不能直接接收键盘输入的内容!

         字符串可以从键盘中输入内容:

             

ios plist保存数组 数组怎么保存字符串_字符串_06

             

ios plist保存数组 数组怎么保存字符串_ios plist保存数组_07

           

要注意以上三种的区别)  因为 str=&str[0]

             字符串指针不能直接接收键盘输入的内容:

            

ios plist保存数组 数组怎么保存字符串_字符数组_08

           字符串数组保存在栈区,可以被读写。字符串的写入操作如下:

            

ios plist保存数组 数组怎么保存字符串_ios plist保存数组_09

           

ios plist保存数组 数组怎么保存字符串_字符串_10

        字符串指针存放内存中的常量区,只可以读,不能被修改。

3.char类型的指针数组,可以保存多个字符串

     字符串数组的要求有两个:

1)该数组是二维的字符数组

2)是char类型的指针数组

            char *str[]={“asd”,”fgh”,”ert”};

for循环来遍历每个字符串

(int i=0;i<3;i++){printf(“%s\n”,str[i])};

注意: 

1). 不能修改 字符串的内容,因为每个字符串都在内存的常量区存储(常量的数据只能读,不能修改)

2).   字符串指针变量可以重新被赋值,但是指向会发生改变,如果s重新被赋值的内容是相同的,此时,指向没有发生改变

    

ios plist保存数组 数组怎么保存字符串_字符串_11

 

      

ios plist保存数组 数组怎么保存字符串_字符数组_12

3)字符数组不能被整体重新赋值,但是可以改变某个字符!

ios plist保存数组 数组怎么保存字符串_ios plist保存数组_13

 


4.二维的字符数组也可以存放多个字符数组,可以改变某个字符串的某个字符。

ios plist保存数组 数组怎么保存字符串_ios plist保存数组_14

 

ios plist保存数组 数组怎么保存字符串_字符数组_15