数组总结

1. 数组定义时必须指定元素的个数,可以是常量和符号常量,但是不能包含变量
如 int n;
    scanf("%d",&a);
    int a[n];
是不合法的。
ps:如果在被调用的函数中定义数组,其长度可以是变量或者非常表达式。

 

2. 字符数组
赋值:char c[10]={'I',' ','a','m'}
一定要用''括起来,当处置个数小雨数组长度时后面的元素自动定为空字符('\0')。
也可以用整型数组存放(ASCII码):
如 int c[10];
    c[0]='a';

 

3. 字符串
字符串常量的最后会由系统自动加一个'\0'
char c[]="I am happy" 等价于 char c[]={'I',' ','a','m',' ','h','a','p','p','y','\0'}。 此时,数组C的长度是11而不是10。
字符串的输入输出:
 a. 逐个字符输入输出。用"%c"输入输出一个字符;
 b. 将整个字符串一次输入或输出。用"%s"表示。char c[10]; scanf("%s",c);    c前不加地址符号,因为c是字符数组名,代表的就是该数组的起始地址。

 

4. 字符串处理函数

a. puts函数

    puts(str);     按字符数组名str找到数组起始地址,逐个输出其中的字符知道遇见'\0'为止。字符串中可以包含空格和转义字符。

b. gets函数

    gets(str);想字符串组输入一个字符串,字符串中可以包含空格。

c. strcat函数

    strcat(str1,str2);  把字符串2接到字符串1后面,结果放在字符串数组1中。

d. strcopy和strncpy函数

    strcopy(str1,str2); 将字符串2复制到字符数组1中去。字符数组1必须足够大,而且必须写成数组名形式;字符串2可以是数组名也可以是字符串常量。

    strncpy(str1,str2,n); 将字符串2中前n个字符复制到字符数组1中去。

e. strcmp函数

    strcmp(str1,str2); 将两个字符串自左至右逐个字符相比(ASCII码值大小),直到出现不同的字符或遇到'\0'为止。如果相同返回0;str1>str2,返回一个正数;str1<str2,返回一个负数。

f. strlen函数

   char str[10]={"china"};strlen(str);结果是5。测试字符串长度(不包括'\0'在内)。也可以直接写成strlen("china")。

g. strlwr函数----转换为小写的函数;

   strupr函数----转换为大写的函数。

 

  ps:在调用字符串函数之前要加载#include<string.h>。

posted on 2015-01-27 16:26  粪斗的渣渣  阅读(207)  评论(0编辑  收藏  举报