「配列」1次元配列、2次元配列、文字配列、文字列処理機能をどのように使用すればよいですか?

一次元配列

二次元配列

文字配列

文字列を処理するための関数

1. 1次元配列:

タイプシンボル配列名[定数式];

***配列名は、配列のアドレスまたは配列の最初の要素のアドレスを表すことができます。2つの値は同じですが、意味が異なります。

int arry [10];

この配列
int n=sizeof(arry)/sizeof(arry[0]);の要素数//要素数=配列の全体的なバイトサイズ/最初の要素のバイトサイズは、
これがそれぞれ10個の整数要素を持つ整数(int)配列であることを意味します。Isa[0] 、a [1]、a [2]、a [3]、a [4]、a [5]、a [6]、a [7]、a [8]、a [9]。( " A [10]は存在しません");

for関数を使用して、10個の要素に対応する次の表を出力します。
例:

#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
请按任意键继续. . .

「[]」の定数式は、定数または定数式のみにすることができます(値は固定されています)。
例:int a [2 + 3];は、その値が定数として固定されているため、可能です。
例:int a [n];は不正です。つまり、c言語では配列サイズの動的調整が許可されていません。

注:配列名はsizeofと&の後の配列全体を表し、その他は最初の要素のアドレスを表します***

int arr1[10] = {
    
    1,2,3};//10个元素,其余未定义为0
int arr2[] = {
    
    1,2,3,4};//四个元素
int arr3[5] = {
    
    12345}
char arr4[3] = {
    
    'a',98, 'c'};
char arr5[] = {
    
    'a','b','c'};
char arr6[] = "abcdef";
这些数组都是正确的

2次元配列:

型指定子配列名[定数式1] [定数式2]

(定数式1:複数の行があります)(定数式2:各行にいくつかの要素があります)
例:i

int ewarry[3][4]={
    
    {
    
    12}{
    
    5,67}{
    
    }}
注:未赋值的为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不能少

3、文字配列:

定義:文字データを格納するために使用される配列は、scanfが文字配列に
使用される場合です。scanf( "%d"、srry);いいえ&、arryは配列名の最初のアドレスを持っています。
例:

char c[10]={
    
    'i','s','e','e','y','o','u'}
注:\0既是字符串结束标志,系统自行填充\0

第四に、文字列を処理する機能:

1.置く

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(str1,str2)>0)
printf("yes");

6.strlen

strlen(字符数组)
作用:测试字符串长度的函数,函数的值为字符串中的实际长度(不包括'\0')。
char str[10]="abcede";
printf("%d",strlen(str));
输出结果为:>5.
也可以直接粗粮长度,如:
strlen("abcde");

7.ストレス

strlwr(字符串)
作用:将字符串中大写字母换成小写字母。

8.strupr

strupr(字符串)
作用:将字符串中小写字母换成大写字母。

おすすめ

転載: blog.csdn.net/weixin_52270223/article/details/109658353
おすすめ