码迷,mamicode.com
首页 > 编程语言 > 详细

一维数组 二维数组 字符数组 处理字符串的函数

时间:2020-11-21 12:00:21      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:含义   一维数组   war   未定义   字符串比较   函数调用   固定   int   维数   

一维数组 二维数组 字符数组 处理字符串的函数
一维数组
二维数组
字符数组
处理字符串的函数
一、一维数组:
类型符 数组名[常量表达式];
数组名既可以表示数组的地址,也可以表示数组首元素的地址,两个在数值上是一样的,但是含义不一样。

int arry[10];
这个数组里元素个数:
int n=sizeof(arry)/sizeof(arry[0]);//元素个数=数组的总体字节大小/第一个元素的所占字节大小
表示这是一个整型(int)数组,里面有10个整型元素,分别为a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。("不存在a[10] ");

用一个for函数打印出10个元素所对应的的下表;
eg:

#include<stdio.h>
void main()
{
int i, a[10] = {1,2,3,4,5,6,7,8,9,10 };
for (i = 0; i<10; i++)
{
printf("第%d个元素即a[%d]对应的值为:>", i+1,i);
printf("%d\n", a[i]);
}
system("pause");
}
打印结果为:
第1个元素即a[0]对应的值为:>1
第2个元素即a[1]对应的值为:>2
第3个元素即a[2]对应的值为:>3
第4个元素即a[3]对应的值为:>4
第5个元素即a[4]对应的值为:>5
第6个元素即a[5]对应的值为:>6
第7个元素即a[6]对应的值为:>7
第8个元素即a[7]对应的值为:>8
第9个元素即a[8]对应的值为:>9
第10个元素即a[9]对应的值为:>10
请按任意键继续. . .
**“[]”中的常量表达式只能是常量或常量表达式(它的值是固定不变的)。
eg:int a[2+3];是可以的,因为它的值固定 为常量。
eg:int a[n];是不合法的,也就是c语言不允许对数组大小做动态调整。

**注意:数组名只有在sizeof和&后才代表整个数组,其它都表示首元素的地址*****

int arr1[10] = {1,2,3};//10个元素,其余未定义为0;
int arr2[] = {1,2,3,4};//四个元素
int arr3[5] = {1,2,3,4,5};
char arr4[3] = {‘a‘,98, ‘c‘};
char arr5[] = {‘a‘,‘b‘,‘c‘};
char arr6[] = "abcdef";
这些数组都是正确的
二、二维数组:
类型说明符 数组名[常量表达式1][常量表达式2]
(常量表达式1:有几行)(常量表达式2:每一行有几个元素)
eg:i

int ewarry[3][4]={{1,2},{5,6,7},{}}
注:未赋值的为0
既:
1 2 0 0
5 6 7 0
0 0 0 0
正确的表达式:
int arr[3][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//系统自行填充0
int arr[][5]={1,2,3,4,6,4,7,8,5};//常量表达式1可以不写,由系统自行填充0,常量表达式2不能少
三、字符数组:
定义:用来存放的字符数据的数组是字符数组
用scanf时。scanf("%d",srry);不用&,arry为数组名有首地址
eg:

char c[10]={‘i‘,‘s‘,‘e‘,‘e‘,‘y‘,‘o‘,‘u‘}
注:\0既是字符串结束标志,系统自行填充\0
四、处理字符串的函数:

  1. puts
    puts(字符数组)
    作用:将一个字符串(以\0结束)输出到终端。
    2.gets
    gets(字符数组)
    作用:从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符串的起始地址。
    3.strcat
    strcat(字符数组1,字符数组2)
    作用:将两个字符数组中的字符串连接起来,吧第二个字符串接到第一个字符串后面,结果放在字符数组1中,函数调用得到一个函数值——字符数组1的地址。
    char arry1[50]={"abcde "};
    char arry2[]={doushini"};
    printf("%d",strcat(arry1,arry2));
    输出:>
    abcd doushini
    4.strcpy和strncpy
    strcpy(字符数组1,字符数组2)
    作用:将字符串2复制到字符串1中(包含2中末尾的\0,但1后面任为原来字符元素)。加n表示将数组2中前面几个字符复制过来。
    char str1[10],str2[]="abcd";
    strcpy(str1,str2);
    5.strcmp
    strcmp(字符串1,字符串2)
    作用:比较字符串1和字符串2.
    strcmp("str1,str2");
    strcmp("abcde","nishishei");
    strcmp(str1,"abcde");
    比较结果由函数值带回。
    (1)如果字符串相等,则函数值为0;
    (2)如果前面字符串>后面字符串,则函数值为一个正整数;
    (3)如果前面字符串<后面字符串,则函数值为一个负整数;

注:两字符串比较不能用:
if(str1>str2)
printf("yes");
只能用:
if(strcmp(https://blog.csdn.net/shkfpwzstr1,str2)>0)
printf("yes");
6.strlen
strlen(字符数组)
作用:测试字符串长度的函数,函数的值为字符串中的实际长度(不包括‘\0‘)。
char str[10]="abcede";
printf("%d",strlen(str));
输出结果为:>5.
也可以直接粗粮长度,如:
strlen("abcde");
7.strlwr
strlwr(字符串)
作用:将字符串中大写字母换成小写字母。
8.strupr
strupr(字符串)
作用:将字符串中小写字母换成大写字母。

一维数组 二维数组 字符数组 处理字符串的函数

标签:含义   一维数组   war   未定义   字符串比较   函数调用   固定   int   维数   

原文地址:https://blog.51cto.com/14308899/2551441

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!