程序沒有問題。str[j++]=str[i]這是什么意思?????# include <stdio.h>#include <stdlib.h>void DropNum(char* str){int i=0;int j=0; while(str[i]!='\0') { if(str[i]>'9'||str[i]<'0') str[j++]=str[i]; i++; } str[j]='\0';//字符串最后一個字符時'\0'}void main(){char ch[] = "abcd123efg456hijk";? ? DropNum(ch);printf("%s\n",ch);}
2 回答
已采納

Yexiaomo
TA貢獻152條經驗 獲得超157個贊
//需要先明白那個算法的 原理,-->(
-->也就是重新整理數組, ?看那個if 語句, 如果不是 數字的話執行: ?str[j++]=str[i];
-->j 是新的數組 的下標, 從零開始, 如果不是 數字, 將 str[i] 的值存放到 str[j]中
)
看 j++ ?, ?自增 符號 ? 在后面, 所以是先進行 ‘++’之外的運算(也就是比‘++’運算級高的運算), 然后在 自增1,?
?str[j++]=str[i]; ? 這條語句, 相當于下面這兩條語句:
str[j] = str[i];
j++;
不知道你能不能看懂, 不懂了, 在下面回復
-------------------------------------------------------------分割線----------------------------------------------------------啦啦~~Imcainiao
- 2 回答
- 0 關注
- 1509 瀏覽
添加回答
舉報
0/150
提交
取消