- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二级C上机答案
一、*与字母问题
1其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。
void fun(char *a){int i,j=0;for(i=0;a[i]!=′\0′;i++) if(a[i]!=′*′) a[j++]=a[i];
a[j]=′\0′; }
2除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提的字符串函数。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′;}
3请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。。void fun (char *a){while(*a!=′\0′) a++;a--;while(*a==′*′) a--;*(a+1=′\0′; /}
4请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。void fun(char *a){int i=0,n=0;char *p;p=a;while (*p==′*′) {n++;p++;}
while(*p) {a[i]=*p;i++;p++;}while(n!=0){a[i]=′*′;i++;n--;}a[i]=′\0′; }
5只删除字符前导和尾部的*号,串中字母间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。在编写函数时,不得使用C语言提供的字符void fun (char *a,int n ,int h , int e){int i,j=0;for(i=h;in-e;i++)
a[j++]=a[i];a[j]=′\0′; }
6除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。void fun(char *a,char *p)
{char *t=a;for(;t=p;t++)if(*t!=′*′) *(a++)=*t; for(;*t!=′\0′;t++)*(a++)*t;
*a=′\0′; }
7编写函数fun,其功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。void fun (char *a){char *p=a;while(*p==′*′) p++; /for(;*p!=′\0′;
p++,a++) *a=*p;*a=′\0′; }
8除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。
void fun(char *a,char *h,char *p){int i=0;char *q=a;while (qh) {a[i]=*q;q++;i++;}
while (qp){ if(*q!=′*′){a[i]=*q;i++;}q++;}while (*q) {a[i]=*q;i++;q++;}a[i]=′\0′;}
9使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。void fun(char *a,int n ){int i=0, k=0; char *p, *t;
p=t=a; /while(*t==′*′) {k++; t++;}if(kn) { while(*p) {a[i]=*(p+k-n);
i++; p++; } a[i]=′\0′;}}
10使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。void fun( char *a,int n ){int i=0,k=0;
char *p, *t;p=t=a;while(*t) t++;t--;while(*t==′*′){k++;t--;}if(kn){while(*ppt+n+1){a[i]=*p; i++;p++; } a[i]=′\0′;}}
11使字符串中前部的*号不得多余n个;若多余n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。void fun(char *a,int n ){int i=0, k=0;
char *p, *t;p=t=a; while(*t
文档评论(0)