恳请大师们指点……
这是一个c语言编程的试题: 将“***ABC***abc***”删除最左边的“***”变为“ABC***abc***"(一定要在原字符串上进行操作);
我编写的程序是:
#include <stdio.h>
#include <string.h>
void main ()
{char a[]="***ABC***abc***";int i;
for (i=0;a[i]=='*';i++)
a[i]=' ';
puts (a);
}
虽然运行后可以输出“ABC***abc***”,但貌似不符合要求;可是参考答案是这样的:
#include <stdio.h>
#include <string.h>
void main ()
{
char s[]="***abc***ABC***";
int i,j;
for (i=0;s[i]=='*';i++)
for (j=0,i=0;s[j]!=0;j++,i++)
s[i]=s[j];
puts(s);
}根本就运行不出结果。
我就郁闷了;
望大师们能给出符合要求的程序.(我是一c语言初学者,在此诚心请教,望大师们不吝赐教啊)谢谢。,衷心感谢~!
[解决办法]
注意是变为“ABC***abc***",而不是输出为“ABC***abc***"!
[解决办法]
#include <stdio.h>
#include <string.h>
void main ()
{
char s[]="***abc***ABC***";
int i,j;
i=0;
while ('*' == s[i])
{
++i;
}
for (j=0;'\0' != s[i];++j,++i)
{
s[j]=s[i];
}
s[j] = '\0';
puts(s);
}
[解决办法]
#include <stdio.h>#include <string.h>void main (){ char s[]="***ABC***abc***"; int i,j; for (i=0;s[i]=='*';i++); for (j=0;s[j]!=0;j++,i++) s[j]=s[i]; puts (s);}
[解决办法]
前几天回复过和你一样的帖子,自己找一下
[解决办法]
#include <stdio.h>#include <string.h>void main (){ char s[]="***abc***ABC***"; int i,j; int len = strlen(s); for (i=0;s[i]=='*';) { for (j=i; j<len; j++) s[j]=s[j+1]; puts(s); } system("PAUSE");}
[解决办法]
void main (){ char s[]="***abc***ABC***"; int i,j=0; for (i=0;s[i]=='*';i++,j++); for (i=0;s[i]!='\0';i++) s[i]=s[i+j]; puts(s);}
[解决办法]
#include <iostream>#include <vector>using namespace std;int main(){ char a[]="***ABC***abc***"; vector<char> c_vec; int i = 0; while('*' == a[i]) { i++; } for(int j= i; a[j] != '\0'; j++) { c_vec.push_back(a[j]); } for(vector<char>::iterator it = c_vec.begin(); it != c_vec.end(); it++) { cout<< *it; } return 0;}