首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

劳驾大师们帮小弟我检验下小弟我写的程序是否符合要求,同时麻烦您能提出更好的建议

2012-05-12 
劳驾大师们帮我检验下我写的程序是否符合要求,同时麻烦您能提出更好的建议这个c语言试题是这样的 :要求把“

劳驾大师们帮我检验下我写的程序是否符合要求,同时麻烦您能提出更好的建议
这个c语言试题是这样的 :要求把“***abc***ABC123***”变为“***abc***ABC123",只能在源代码上操作、

(我是c语言的初学者,还有很多地方要向诸位大师请教。望您能不吝赐教。由衷的感谢!!!)
我自己琢磨了半天写出的代码是这样的(结果是达到了要求,但我希望能多掌握几种思想与方法):
#include <stdio.h>
#include <string.h>
void main ()
{
char a[]="***abc***ABC123***";
int i,j,l=strlen(a);
for (i=0,j=0;i<l;i++)
if (a[i]!='3')
{
a[j]=a[i];j++;
}
else 
{a[j]='3';
for (j=i+1;j<l;j++)
a[j]=' ';
}
puts (a);
}有劳诸位了,如果可以的话请您写出更好的源代码,要是c语言的哦!谢谢了!!!

[解决办法]

C/C++ code
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(int argc, char **argv){    char a[] = "***abc***ABC123***";    char *pstr = strstr(a, "3");    if(!pstr)        fprintf(stderr, "can't find string!\n");    while(*(++pstr))        *pstr = 0;    printf("%s\n", a);    exit(0);}
[解决办法]
C/C++ code
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(int argc, char **argv){    char a[] = "***abc***ABC123***";//    char *pstr = strstr(a, "3");    char* b=a;    int len=strlen(a);    while(*b!='3')    {       b++;    }    *(b++)=0;    printf("%s\n", a);    system("pause");    return 0;}
[解决办法]
void Delete(char *s)
{
for(;*s;s++);
while(*++s=='*');
*++s='\0';
}
[解决办法]
移指针指向串尾,向前移动,比较,当不是 * 号,赋值 '\0'
[解决办法]
请楼上各位试试"*"和""这两种特殊情况
C/C++ code
char a[]="***abc***ABC123***";int i,L;L=strlen(a);for (i=L-1;i>=0;i--) { if ('*'==a[i]) a[i]='\0'; else break;} 

热点排行