一道c语言方面的问题,请各位高手帮忙解答一下

请各位高手帮忙解答一下有一个:字符数组str,数组中存放一个字符串,编程将字符数组中ASCII值为奇数的字符从数组中删除掉,删除后形成的新字符串仍然存放在原来的字符数组s... 请各位高手帮忙解答一下有一个:
字符数组str,数组中存放一个字符串,编程将字符数组中ASCII值为奇数的字符从数组中删除掉,删除后形成的新字符串仍然存放在原来的字符数组str中。
展开
 我来答
wuming0214
2006-12-20 · TA获得超过417个赞
知道小有建树答主
回答量:524
采纳率:0%
帮助的人:650万
展开全部
勉强着用吧,调试已经通过.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define max 100

void main()
{
char str[max]={0};
char strcp[max]={0};
int n=0;
int m;
printf("input string:");
scanf("%s",str);
for(int i=0;str[i]!='\0';i++)
{
m=(int)str[i];
if((m%2)==0)
{
strcp[n]=str[i];
n++;
}
}
printf("%s\n",strcp);
strcpy(str,strcp);
printf("%s\n",str);
}
依旧飘流
2006-12-20 · TA获得超过985个赞
知道小有建树答主
回答量:623
采纳率:0%
帮助的人:278万
展开全部
题目的本意应该是只在一个数组里操作
我认为应该是这样做的(已经证实没有错误)
#include <stdio.h>
#include <string.h>
#define max 100
main(){
char str[max];
int i,k;
printf("input string:");
scanf("%s",str);
for(i=0;str[i]!='\0';i++){
if(str[i]%2==0){
k=i;
while(str[k]!='\0'){
str[k]=str[k+1];
k++;}
}
}
printf("\n%s",str);
getch();
}

/****或下面也可以****/
main(){
int i,k;
char str[100];
printf("input string:");
scanf("%s",str);
for(i=0;str[i]!='\0';i++){
if(str[i]%2==0){
k=i;
while(str[k]!='\0'){
str[k]=str[k+1];
k++;}
}
}
printf("\n%s",str);
getch();
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式