求一个比较简便的c语言程序……
题目是这样的 “****abc***ABC123***”,请编写一个程序使得原句子变为“abcABC123”(注意:可不是单纯的把“*”变成空格就行了,还得把字母数字连在一起,需要移动的;我是一个c语言的初学者,故十分虚心的请教)
诚心请教各位前辈……
[解决办法]
#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);