#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不是等于最后一個字符嗎,為什么還要減一啊?求大神解析還有就是想問一下怎么像大神們那樣把代碼弄成前面有標(biāo)第幾行的樣子?。?
1 回答

NothingAJ
TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超1個贊
這里調(diào)用的函數(shù)strlen(var) 是返回字符串的長度,而你所需要的是字符串的索引(index)值,是從零開始計數(shù)的。因此要減1.
第二個問題:
- 1 回答
- 0 關(guān)注
- 955 瀏覽
添加回答
舉報
0/150
提交
取消