接上文

​初步认识字符数组碰到的scanf函数问题​

接下来我们具体体会字符数组作为函数参数:

1.题目:编写一个fun函数,对长度为N的字符串利用冒泡排序(从大到小)进行排序然后输出。

字符数组作为函数参数理解_数组

这里要注意第一个for循环的i判断条件是strlen(s),如果写成N的话,会造成输出的结果末尾带有一个正方形。

2.

题目:输入一个字符串然后把字符串中的数字输出出来

字符数组作为函数参数理解_数组_02

这道题要知道的前提:

数字字符转对应整形数字:如'9'-'0'

对应整型数字转数字字符:如9+'0'

3.

题目:输入一个字符串,输入插入位置,如果插入位置在数组范围内,则输出插入后字符串;如果插入位置不在数组范围内,将该字符补在字符串末尾如何进行输出。

字符数组作为函数参数理解_for循环_03

这里注意的是这个输入的字符位置要和字符下标对到,插入第四个数是s[3]而不是s[4]。

4.

题目:输入两个字符串,然后输出删除和第一个字符相同的字符后的第二个字符串。


字符数组作为函数参数理解_数字字符_04

内层for循环进行判断,外层进行赋值。

写这个代码的时候,我有个知识误区,就是对if()括号内的判断条件不是特别清楚。

比如if(temp),这个(temp)指temp!=0,但是初始化temp=0,所以0!=0,这本身就不能运行。但是改为(!temp)和temp==0是同一个意思。



如有不对,欢迎指正。