程序没有问题。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 关注
- 1444 浏览
添加回答
举报
0/150
提交
取消