#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/

10-10 16:50