#include <stdio.h>
void reverse( const char * const sPtr );
int main ( void ) {
char sentence[ 80 ];
fgets( sentence, 80, stdin);
reverse (sentence);
return 0;
}
void reverse( const char * const sPtr ){
if (sPtr[0] == '\0' )
return;
else {
reverse( &sPtr[1] );
putchar (sPtr [0] );
}
我对反向功能的工作方式感到困惑?我没有看到指针是如何递增以指向下一个字符的,我不知道我是否完全理解 putchar 的作用。任何帮助,将不胜感激。
最佳答案
此函数为字符串中的每个连续字符递归调用自身,并在到达 \0
字符(基本情况)时以相反的顺序展开打印字符。
步骤 1 :
void reverse( const char * const sPtr ){ //This calls the function with string
这里,sPtr 指向字符串的第一个字符。
第 2 步 :
reverse( &sPtr[1] ); //This calls the function with the next character of the string
这条线是插入功能前进的原因。
第 3 步 :
重复这两个步骤,到达字符串的末尾,即基本情况。
它不是反转字符串,而是简单地反向打印字符串。
关于C 关于 PUTCHAR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14533887/