C语言。运用strtok函数使字符串倒叙输出的。程序应该没问题。不理解写的reverse函数啥意思。可以解释下吗

2020-09-26 科技 113阅读
这一整段代码的功能是,用户输入一句话,按照单词进行逆序,但是单词内部还是原来的顺序。比如输入“I am a good boy”,处理之后输出的是boy good a am I”。
先理解一下strtok这个函数的功能,函数原型
char* strtok(char* s, const char* delim)
它的第一个输入参数是需要处理的字符,第二个输入参数是分隔符,返回值是分割后的字符串。
比如第一个参数输入“I am a good boy”,第二个参数是“ ”(空格);
strtok(I am a good boy”, " ");
则返回值是“I”。
如果需要继续获得后面分割的字符串,就需要继续调用
strtok(NULL," "); // 第二次返回值,就是“am”
直到最后一个分割字符子串,返回值是0;
reverse()是个递归调用,如果还有分割字符串,则继续调用自己,直到最后一个分割子串,开始打印;接着返回上一次调用,打印前一个分割子串。最后就变成逆序了。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com