规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到宁符串的尾部。 例如,字符串中的内容为“*******A*BC*DEF*G****”,移动后,字符串中的内容应当是“A*BC*DEF*G**********

admin2021-02-25  27

问题 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到宁符串的尾部。
    例如,字符串中的内容为“*******A*BC*DEF*G****”,移动后,字符串中的内容应当是“A*BC*DEF*G**********”。在编写函数时,不得使用C语言提供的字符串函数。
    注意:部分源程序给出如下。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
  试题程序:
#include<stdio.h>
#include<conio.h>
void fun(char*a)
{
}
main()
{
    char s[81],*P;
    char  test[4][80]=(“********A*BC*DEF*G****”,”A******B*CD**EF*G*”,“****A****G*”,“*d**b**a**e*”};
    int i;
    printf(“Enter a string:\n:”);
    gets(s);
    fun(s);
    printf(“The string after moveing:\n”);
    puts(s);
}

选项

答案void fun(char*a) { int i=0,n=0; char*p; p=a; /*判断*p是否是*号,并统计*号的个数*/ while(*p==‘*’) { n++,p++; } /*将前导*号后的字符传递给a*/ while(*p) { /*将*之后的字符串保存到a中*/ a[i]=*p; i++;p++; } while(n!=0) { /*在a后追加n个*号*/ a[i]=‘*’;i++,n一一; } a[i]=‘\0’;/*加上结束符*/ }

解析 函数fun的功能是:将字符串中的前导*号全部移到字符串的尾部。本题解题思路:首先定义一个指针并指向字符串的首地址;其次利用循环语句找出字符串的前导*号的个数n;然后利用循环语句把剩余的字符复制到另一个字符串中;最后在字符串的末尾接上n个*号。
转载请注明原文地址:https://kaotiyun.com/show/Uotp777K
0

最新回复(0)