嵌入式学习笔记九—— C语言二维字符型数组和函数

二维字符型数组

可以同时存放多个字符串,批量处理字符串。

我们先定义一个字符串:

char s[3][10];

行表示字符串个数,列表示字符串长度。

1.初始化

char s[3][10] = {{"hello"},{"world"},{"english"}};  //初始化 
char s[3][10] = {"hello","world","english"};

初始化会按行初始化,按行存储字符串。

2.输入字符串


  (1)输入字符串给s[3][10]用:gets(s[0]);       //s[0] 就是第0行是这个一维字符型数组的数组名。
  
  (2)如果用scanf(),则不能输入空格,scanf()占位符无法识别空格。

练习:  从键盘输入5个字符串,找出最大的字符串

函数

1.函数的思想

从上到下逐步求解的过程(拆)。

2.函数的定义

类型标识符 函数名(形式参数)
{
    函数体代码
} 

(1)类型标识符 :  数据类型   //表示函数要带出的结果的类型

 注意: 数组类型 不能做 函数返回结果的类型 

返回结果:
     a.如果函数不需要带出什么结果,此时返回结果的类型说明符 一般设计为void 。
        如果类型为void,一般不写return 或者写return ;。
     b.如果 返回结果的类型 与 类型说明符不一致,以类似说明符为准。最终结果的类型,都会转为类型说明符表示的类型 。
     c.类型说明符,如果不写,默认是 int 类型。


(2)函数名 :即标识符 ,命名规则符合标识符命名规则    

(3)形式参数:表示,该函数需要用到的数据 //表明,将来使用时,需要用到的实际参数,该怎么写

  注意:
      a.形参变量,必须都明确指定类型,不能写成 int a,b 
      b.实参 和 形参对应关系:类型匹配、个数相同、顺序相对应
      c.函数传参  --- 传递的是 实际参数的 数值 //值传递 
      d.如果不需要接收实际参数,形参一般设计为void //表示空类型 

(4)函数体代码:这是 实现函数具体功能的那部分代码。

3.写一个函数的步骤

(1)确定函数名,函数名要直观,见名知意。

(2)考虑函数需要哪些数据,即形参。

(3)处理数据,写函数体内容。

(4)考虑要不要带出结果,结果应该是返回值对应的类型说明符。

4.return语句

return (表达式);表示从函数中返回,意味着函数结束了。

5.函数调用

语法:函数名(实际参数)    //函数名前不用写类型

1. 函数语句,把函数调用作为一个语句。

2. 函数表达式,函数出现在一个表达式中,这种表达式称为函数表达式。

3. 函数参数,函数调用作为一个函数的实参。

6.函数定义的位置

1.main函数之前

2.main函数之后 

需要在使用(函数调用)前,作函数声明,函数头+分号 就是函数声明   

eg:写函数实现两个数求和

#include <stdio.h>

int add(int num1,int num2)
{
	int sum;
	sum = num1 + num2;
	return sum;
}

int main(void)
{
	int ret;
	ret = add(1,2);
	printf("%d\n",ret);
	return 0;
}

值传递:main函数中的a,b值作用与main函数中,当调用max函数时,main中a,b的值会传递给max函数。

总结:

1.处理字符串时要善于利用字符串的结束标志’\0‘,如要遍历字符串可以用while(s[i]!='\0')。

输入字符串,字符串比较大小,求字符串长度,将一个字符串的值给另一个字符串等要善于利用gets,strcmp,strlen,strcpy等字符串处理函数,处理字符串数据要与处理数字数据区分开。

2.scanf输入字符串不能输入空格。

3.写函数时注意函数的类型标识符和返回值以及形式参数的设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值