Matriz unidimensional
Matriz bidimensional
Matriz de caracteres
Funciones para procesar cadenas
1. Matriz unidimensional:
Escriba el nombre de la matriz de símbolos [expresión constante];
*** El nombre de la matriz puede representar la dirección de la matriz o la dirección del primer elemento de la matriz. Los dos tienen el mismo valor, pero tienen diferentes significados.
int arry [10];
El número de elementos en esta matriz:
int n=sizeof(arry)/sizeof(arry[0]);
// Número de elementos = el tamaño de bytes total de la matriz / el tamaño de bytes del primer elemento
significa que esta es una matriz entera (int) con 10 elementos enteros, respectivamente Es un [0] , a [1], a [2], a [3], a [4], a [5], a [6], a [7], a [8], a [9]. (" A [10] no existe ");
Utilice una función for para imprimir la siguiente tabla correspondiente a 10 elementos;
por ejemplo:
#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");
}
El resultado de la impresión es:
第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
请按任意键继续. . .
La expresión constante en "[]" solo puede ser una constante o una expresión constante (su valor es fijo).
ej .: int a [2 + 3]; es posible, porque su valor se fija como una constante.
ej .: int a [n]; es ilegal, es decir, el lenguaje c no permite el ajuste dinámico del tamaño de la matriz.
Nota: El nombre de la matriz representa la matriz completa solo después de sizeof y &, y los demás representan la dirección del primer elemento ***
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";
这些数组都是正确的
Matriz de dos dimensiones:
Escriba el nombre de la matriz del especificador [expresión constante 1] [expresión constante 2]
(Expresión constante 1: hay varias líneas) (Expresión constante 2: hay varios elementos en cada línea)
por ejemplo: 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不能少
Tres, matriz de caracteres:
Definición: La matriz utilizada para almacenar los datos de los caracteres es cuando se usa scanf para la matriz de caracteres
. scanf ("% d", srry); No &, arry tiene la primera dirección para el nombre de la matriz,
por ejemplo:
char c[10]={
'i','s','e','e','y','o','u'}
注:\0既是字符串结束标志,系统自行填充\0
Cuarto, la función de procesar cadenas:
1. pone
puts(字符数组)
作用:将一个字符串(以\0结束)输出到终端。
2.obtiene
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) Si las cadenas son iguales, el valor de la función es 0;
(2) Si la cadena frontal> la cadena posterior, el valor de la función es un entero positivo;
(3) Si la cadena frontal <la cadena posterior, el valor de la función es un número entero negativo;
注:两字符串比较不能用:
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.estrés
strlwr(字符串)
作用:将字符串中大写字母换成小写字母。
8.strupr
strupr(字符串)
作用:将字符串中小写字母换成大写字母。