編寫C語言源程序
30
編程:規定輸入的字符串中只包含字母和*號。請編寫函數fun,它的功能是①將字符串前面連續的*號全部刪除,中間和尾部的*號不刪除;(例輸入*****A*BC*DEF*G*****,則輸出A*BC*DEF*G*****)②將字符串尾部連續的*號全部刪除,中間和前面的*號不刪除;③將字符串的*號全部刪除。根據以上三個條件 各 編寫 一 個 源程序(請注意,是各編寫一個,一共編寫三個!),要求必須用到 指針 和 數組。
最佳回答:
1.
#include <stdio.h>
void fun(char *s)
{
char *t = s;
while(*s != '\0' && *s == '*') s++;
while(*s != '\0') *t++ = *s++;
*t = '\0';
}
int main( )
{
char s[100]="******A*B***";
fun(s);
puts(s);
return 0;
}
2.
#include <stdio.h>
void fun(char *s)
{
char *t = s;
while(*t != '\0') t++;
while(*(t-1) == '*') t--;
*t = '\0';
}
int main( )
{
char s[100]="******A*B***";
fun(s);
puts(s);
return 0;
}
3.
#include <stdio.h>
void fun(char *s)
{
char *t = s;
while(*s != '\0')
{
if(*s != '*')
*t++ = *s;
s++;
}
*t = '\0';
}
int main( )
{
char s[100]="******A*B***";
fun(s);
puts(s);
return 0;
}