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

比较简便的c语言程序…

2012-05-13 
求一个比较简便的c语言程序……题目是这样的 “****abc***ABC123***”,请编写一个程序使得原句子变为“abcABC12

求一个比较简便的c语言程序……
题目是这样的 “****abc***ABC123***”,请编写一个程序使得原句子变为“abcABC123”(注意:可不是单纯的把“*”变成空格就行了,还得把字母数字连在一起,需要移动的;我是一个c语言的初学者,故十分虚心的请教)

诚心请教各位前辈……

[解决办法]

C/C++ code
#include <string.h>#include <stdio.h>void main( void ){   char src[] = "****abc***ABC123***";   char dest[100];   int len = strlen(src);   for ( int i=0, int j=0; i<len; ++i )   {       if ( src[i]!='*' )       {           dest[j] = src[i];           ++j;       }   }   dest[j] = '\0';   puts(dest);}
[解决办法]
#include<stdio.h>
#include<string.h>

int main(void){
char sourcestr[]="****abc***ABC123***";
char finishedstr[20]="\0";
int i=0;
int j=0;
while(i<strlen(sourcestr))
{
if(sourcestr[i]!='*')
{
finishedstr[j]=sourcestr[i];
++j;
}
++i;
}

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

return 0;
}
[解决办法]
这个方法有好多的 2楼的是最基本的 还有一个很基本的方法就是
不定义新数组,依然是i,j两个游标,算了 我写出来吧
#include <string.h>
#include <stdio.h>

void main( void )
{
char src[] = "****abc***ABC123***";
int len = strlen(src);
for ( int i=0, int j=0; i<len; ++i )
{
if ( src[i]!='*' )
{
src[j] = src[i];
++j;
}
}
dest[j] = '\0';
puts(src);
}

[解决办法]
char A[]={'*','*','*','*','a','b','c','*','*','*','A','B','C','1','2','3','*','*','*','\0'};
int i=0;int j=0;
while(A[i]!=NULL)
{
if(A[i]!='*')
A[j++]=A[i];
++i;
}
A[j]='\0';
printf("%s",A);

热点排行