新人求解个问题

yys521186679 2011-11-20 12:04:08
删除字符串s中的数字字符。

#include <stdio.h>

int main()

{char s[]="asdfa12sd432df6f34fd90";

int j,k;

for(j=0,k=0;s[j];j++)

if(s[j]>= '0' ________ s[j]<= '9')

{s[k]=s[j];

_________;

}

s[k]=_________;}

。。。为什么我认为是保留数字的。而不是删除。是不是题目有问题啊?
1.&&
2.k++;
3‘\0’

...全文
62 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunffern 2011-11-22
  • 打赏
  • 举报
回复
个人认为是题目上的0和9的位置互换了,就那三个空我是填不出删数字来
jasison 2011-11-22
  • 打赏
  • 举报
回复
就是这样
[Quote=引用 6 楼 yt_cloud 的回复:]
你所给出的代码是保留数字,注意看2楼的代码 if(!(s[j]>= '0' && s[j]<= '9')) 这样判断才是剔除数字!
不明白的话可以在for循环那加个断点单步调试一下!
[/Quote]
yt_cloud 2011-11-21
  • 打赏
  • 举报
回复
你所给出的代码是保留数字,注意看2楼的代码 if(!(s[j]>= '0' && s[j]<= '9')) 这样判断才是剔除数字!
不明白的话可以在for循环那加个断点单步调试一下!
tttt234567890 2011-11-21
  • 打赏
  • 举报
回复
你给的程序里面
if(s[j]>= '0' && s[j]<= '9')判断是否不是数字
如果不是的话就保留 没有问题啊
你可以在程序后面加上
for (int i=0;i<k;i++)
{
printf("%d",s[i]);
getchar();
}
打印出来的都是字母的ascii码
yys521186679 2011-11-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hnuqinhuan 的回复:]
如果是你给的答案的话就是保留数字
[/Quote]
就是说,如果题目没问题,就是我的答案有问题,那么请问下正确的答案是什么啊
無_1024 2011-11-20
  • 打赏
  • 举报
回复

#include <stdio.h>
int main()
{
char s[]="asdfa12sd432df6f34fd90";
int j,k;
for(j=0,k=0;s[j] != '\0';j++)
{
if(!(s[j]>= '0' && s[j]<= '9')) //--关键在于这个判断条件
{
s[k]=s[j];
k++;
}
}
s[k]='\0';
printf("%s\n",s);
return 0;
}

無_1024 2011-11-20
  • 打赏
  • 举报
回复
如果是你给的答案的话就是保留数字
P__204 2011-11-20
  • 打赏
  • 举报
回复
你给的答案是保留数字

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧