程序功能要求:
拆分一个带有空格的字符串,将拆分之后的结果存储在指针数组中。(指针数组中存储的是每段字符串的首地址)。
程序分析:
首先,我们需要定义一个定义一个字符数组来容纳输入的待拆分字符串,这个字符数组需要能够输入空格而不中断。接着,定义一个指针数组,用于接收拆分后字符串的地址。
在进行拆分工作时,首先找到第一个非空格的字符所在位置,将其记录在指针数组中,随后寻找后续内容中的空格字符,将其作为第一个字符串的结束标志'\0'。之后循环进行这一操作,直到整个字符串遍历完成。(这部分重点是结束标志'\0'的设置,这个分断的思路是重点。)
最后,输出拆分后记录在指针数组中的字符串检测结果即可。
程序实现:
这里的[^\n]意为接收除了\n以外的一切字符,即只有回车会当作输入结束,可以在输入时往字符串中加入空格。
函数Myfun1的功能是实现字符串的拆分。
先检测一下传入参数是否正常,然后将原始字符串的地址赋给一个指针,便于应付以后可能需要原始字符串地址指针的情况。Myfun2的功能是查找并返回字符串中第一个非空格字符的地址。
找得到返回地址,找不到返回NULL。
因为全为空格比较特殊,我们需要单独列出。后面的内容就可以进行首个空格转'\0',首个非空格转首地址的循环操作。
这里重复调用Myfun2来获得首个非空地址。
在执行完Myfun1子函数后,我们可以得到一个存储着拆分后字符串内容的指针数组,将其输出。
当然,最后不要忘记声明子函数。
程序运行结果如下: