问题 问答题

编写函数fun(),该函数的功能是从字符串中删除指定的字符,同一字母的大、小写按不同字符处理。 例如:程序执行时输入字符串为turbo c and borland c++,从键盘上输入字符n,则输出后变为turbo c ad borlad c++。 如果输入的字符在字符串中不存在,则字符串照原样输出。 注意:部分源程序已存在文件test18_2.cpp中。 请勿改动主函数脚in和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 文件test18_2.cpp的内容如下: #include<stdio.h> #include<iostream.h> #include<conio.h> void fun(char s[ ], int c) { } void main ( ) { static char str[ ]="turbo c and borland c++"; char ch; cout<<"原始字符串:\n"<<str<<end1; cout<<"输入一个字符:"; cin>>ch; fun(str.ch); cout<<"str="<<str<<end1; }

答案

参考答案:

解析:void fun(char s[], int c) { int i=0; char *p; p=s; while( *p) {if( *p!=c) {s[i]=*p; i++; } p++; } s[i]=’\0’; }本题考查用字符指针来控制字符数组中的元素。指针p初始化时应指向字符数组的首地址s,之后利用p逐个取得数组中的元素,然后用取得的字符逐个与要删除的字符进行比较,如果二者相同,则跳过该字符,去取下一个数组元素,这样最终得到的字符串中就把要删除的字符去掉了。最后不要忘记要手动地加上一个字符串结束标记‘\0’。

名词解释
单项选择题 B1型题