首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中
admin
2019-03-19
63
问题
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是 “**** ABCDEFG”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<string.h>
#include<stdio.h>
#include<conio.h>
void fun(char* a)
{
}
main()
{
char s[81];
printf("Enter astring:\n");
gets(s);
fun(s);
printf("The string after deleted:\n");
puts(s);
}
选项
答案
void fun(char*a) { int i=0; char*p=a; /*单独处理字符串前缀为’*’的情况*/ while(*p&&*p==’*’) { a[i]=*p;i++;p++; } /循环判断当前指向的字符是否’*’如果不是保存*/ while(*p) { if(*p!=’*’) /*保存非*的字符串,并将指针移到下一个位置*/ { a[i]=*p; i++; } p++; } a[i]=’\0’; }
解析
本题考查:指针型变量定义;while循环语句;if语句条件表达式;字符串结束标识‘\0’。
函数fun的功能:除了字符串前导的*号之外,将串中其他*号全部删除。解答本题,首先定义一个临时指针p,初始指向原串首地址;其次利用循环语句把字符串前导*号复制到原串;然后继续移动指针,把串中和串尾的非*号字符复制到原串;最后为修改后的字符串赋结束字符‘\0’。
要删除字符串中的指定字符,通常采用保留非指定字符的方法。可以将非指定字符保留在原串,即将需要保留的字符从原串的起始位置重新赋值;也可以保留到新串,即新建一个字符串,存放要保留的字符。
转载请注明原文地址:https://www.kaotiyun.com/show/mBRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指
下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)#include<stdio.h>#include<string.h>main(){char*str="ABCDabcd
下列程序的输出结果是__________。main(){inta=2,b=4,c=6;intp1=&a,*p2=&b,*p;*(p=&c)=*p1*(*p2);printf("%d
下面对C语言的描述中,正确的是
设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
有如下程序 #include<stdio.h> main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16)); int i,s=0; for(i=0;i<4;i++)s+=a[i
设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1,则T中的叶子结点数为()。
要正确定义并初始化一个数组a,它含有5个元素,则正确的语句是______。
随机试题
夫民虑之于心而宣之于口,成而行之。
函数z=x2—xy+y2+9x—6y+20有【】
骨与关节结核的药物治疗原则是()
肠梗阻的主要临床症状有
产业政策包括()。
公安工作是我国人民民主专政政权工作的重要组成部分,是依据党和国家的政策、法律、法规保卫国家安全与社会治安秩序的专门工作。()
春夏秋冬四季的循环往复变化使得地球景观绚丽多彩,这是大自然赋予地球的珍贵礼物。然而四季这个礼物似乎分配不公,地球上只有温带才有明显的四季变化,而寒带和热带则是长冬无夏和长夏无冬。其原因是()。
在面向对象方法中,类的实例称为
Scienceisadominantthemeinourculture.Sinceittouchesalmosteveryfacetofourlife,educatedpeopleneedatleastsome
Despitethefactthattodayvirusesareknowntocausecancerinanimalsandincertainplants,whereexistsagreatreluctance
最新回复
(
0
)