猿问

二级C填空题

#include <stdio.h>

#include <string.h>

void inv(char *str)

{int i,j,k;

 j=/**/              /**/;  strlen(str)-1

 for(i=0;i<strlen(str)/2;i++,j--)

   {k=*(str+i);

    *(str+i)=*(str+j);

    *(str+j)=/**/      /**/;   k

   }

}

 

void main()

{

  char str[]="asdfjk";

  printf("\n Original is: %s\n",str);

  inv(str);

  printf("\n Now is: %s\n",str);

  getch();

}

为什么 j=/**/              /**/;  strlen(str)-1这里是strlen(str)-1啊,j不是等于最后一个字符吗,为什么还要减一啊?求大神解析

还有就是想问一下怎么像大神们那样把代码弄成前面有标第几行的样子啊?

包小龙虾
浏览 859回答 1
1回答

NothingAJ

这里调用的函数strlen(var) 是返回字符串的长度,而你所需要的是字符串的索引(index)值,是从零开始计数的。因此要减1.第二个问题:
随时随地看视频慕课网APP
我要回答