数组,字符串做输入输出参数

时间:2022-03-07 22:32:47
void fill_arry (int list[], int n, int value)
{
int i;
for(i = 0;i < n; i++)
list[i] = value ;
}

list[] 实际上存储了数组的起始地址,声明等同于 int *list
fill_arry(x , 5 , 1);
fill_arry(&x[0] , 5 , 1); //二者调用的效果相同

C通过传递数组的首个元素的地址将地址储存在形参中,来传递一个数组参数


数组作为输入参数
const 数组类型 数组名[];
或者
const 数组类型 *数组名;
表示数组为严格的输入参数,不能被调用的函数改变。没有 const 则可以改变数组值。


输入输出函数注意点:
1。 scanf 会返回输入值个数,遇到空白,换行,制表符等前导空白字符,遇第一个非空字符
开始读取,在遇到空白字符等停止扫描。
2。 printf(“%-5.6lf”,num); -表示左对齐,5表示数字占的域宽,6表示保留六位小数。

字符串详解:
空字符:C中标记字符串结束字符’\0’使字符串长度由0到声明的长度减1范围。
C中操作字符串要注意避免字符串变量溢出和创建没有用’\0’的字符串

声明:
char str[100];
char *str[10]; 声明一个包含十个字符指针的指针数组

const char *str; 这两个声明一个严格字符串输入参数
const char str[];

char *str; 这两个声明一个字符串输入/输出参数
char str[];
char names[10][20] 为一个十个字符串的数组分配空间,每个字符串最多有19个字符加空白符
char names[][20] 声明一个字符串数组类型的函数参数。

调用I/O函数
gets(str); 从键盘获得一行数据并将它作为一个字符串存储在STR (不包含’\n’)
ch1 = getchar(); 从键盘获得一个字符,并存储在ch1;
putchar(ch1);

字符库函数
islower(); 判断是否小写字母,是则返回真
isdigit(); 判断数字

toupper(); 将字母变大写
tolower();

调用字符串库函数

strcmp(str1,str2); str2 字母顺序大于str1,返回正整数,否则返回负整数,相等返回0;
strlen(); 返回字符串长度,不包括’\0’空字符。
strcpy(str_result,str_src); 将src的字符包括空字符复制到result中,假设有足够空间容纳
strcat(str_result,str_new); 把new的字幕拼接到result的结尾