大哥大姐们,求删除右边星号的程序,谢谢了!

浮生如梦VIP 2011-06-02 12:31:16
编写一个函数用来实现把字符串右边所有的*号删除,例如****abc***123*****,删除后的结果是****abc***123.下面是
我编写的程序,但是不能运行得到结果,请大家帮帮忙!

#include <stdio.h>
void main()
{
char a[90],c,i,j;
printf("输入一个字符串\n");
gets(a);

for(i=0;i<90;i++)
{
if((c=a[i])=='\0')
j=i;
break;
}
for(j=i;j<=0;j--)
if((c=a[j])!='*')
a[j+1]='\0';

printf("%s",a);

}














...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
KID_coder 2011-06-02
  • 打赏
  • 举报
回复

#include <stdio.h>
void main()
{
char a[90],c,i,j;
printf("输入一个字符串\n");
gets(a);

for(i=0;i<90;i++)
{
if((c=a[i])=='\0')
j=i;
break;
}
for(j=89;j>=i;j--) //
if((c=a[j])=='*') //
a[j]='\0';

printf("%s",a);

}

nakedavril 2011-06-02
  • 打赏
  • 举报
回复

#include <stdio.h>
void main()
{
char a[90],c;
printf("输入一个字符串\n");
gets(a);
int i, j = 0;
i = strlen(a);
for (j = 0; j <i; ++j)
{
if (a[j] == '*')
{
break;;
}
}
a[j] = '\0';

printf("%s",a);

}

大致是你的程序的意思
就想叫yoko 2011-06-02
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>
void main()
{
char a[90];
printf("输入一个字符串\n");
gets(a);

int len = strlen(a);
for (int i=len-1; i>=0; --i)
{
if (a[i] == '*')
a[i] = '\0';
else
break;
}

printf("%s",a);

}
lucif0908 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 neolyao 的回复:]

C/C++ code

void Delete(char *s)
{
for(;*str;str++);
while(*--s=='*');
*++s='\0';
}
[/Quote]


void Delete(char *s)
{
for(;*s;s++);
while(*--s=='*');
*++s='\0';
}
iunion 2011-06-02
  • 打赏
  • 举报
回复

void Delete(char *s, char c)
{
char *str = s;

for(; *str; str++);
while(*--str == c);
*++str='\0';
}

c随便设啦,删什么都行
生生 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 neolyao 的回复:]
C/C++ code

void Delete(char *s)
{
for(;*str;str++);
while(*--s=='*');
*++s='\0';
}
[/Quote]

这个方法很巧妙,很简洁。

只是可能是作者写完没检查,把str换成s就对了。
如此美丽的你 2011-06-02
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
char a[90],c;
int i,j;//here
printf("输入一个字符串\n");
gets(a);

for(i=0;i<90;i++)
{
if((c=a[i])=='\0')
//j=i; //here
break;
}
for(j=i-1/*here*/;j>=0/*here*/;j--)
if((c=a[j])!='*')
{
a[j+1]='\0';
break;//here
}

printf("%s\n",a);

}
CrackValue 2011-06-02
  • 打赏
  • 举报
回复
char a[90],c;
声明变量不初始化。。。。。。
如此美丽的你 2011-06-02
  • 打赏
  • 举报
回复

void Delete(char *s)
{
for(;*str;str++);
while(*--s=='*');
*++s='\0';
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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