字符之间的相互转换
1.设计并编制自定义函数chgStr,完成指定功能;而后在main 中调用chgStr 验证其正确性。
2.通过指针参数的使用实现“双向传值”:函数参数为字符指针;调用该函数时,对应实参为一维字符数组名;通过指针参数op 将结果带回到调用函数中去。
实验要求:
编制具有如下原型的函数:
void chgStr(char *ip, char *op);
负责将ip 所指输入串中的各字符按照指定规则进行变换后,存放到由op 指向的输出串中。
即要从头到尾逐字符地对ip 所指向的字符串进行如下处理:
(1)若ip 所指当前字符为字母,则将其改变大小写后存放到结果串op 中。
(2)若ip 所指当前字符是一个数字字符,则将其变换为另一个数字字符后存放到结果串op 中:字符0 变换为字符9,字符1 变换为字符8,字符2 变换为字符7,...,字符9变换为字符0。
(3)若ip 所指当前字符为其他字符,则将该字符复制到结果串op中。
例如:若调用时通过ip 带来的字符串为“Nankai 1918-2004, x+y-5*6/37=? OK!”,则结果字符串op 应为“nANKAI 8081-7995, X+Y-4*3/62=? ok!”。
最后编制主函数,对chgStr 进行调用,以验证其正确性。
2、实验仪器、设备或软件
计算机一台,vc6.0
二、实验过程(实验步骤、记录、数据、)
#include
using namespace std;
int k=0;
int main ()
{
void chgStr(char *ip, char *op);
char p[100],q[100],*p1,*p2;
cin.getline(p,100,'\n');
p1=p;
p2=q;
chgStr(p1,p2);
cout<<p2<<endl;
return 0;
}
void chgStr(char *ip, char *op)
{
for(;*ip!='\0';ip++,op++)
{
k++;
if((*ip>='A')&&(*ip<='Z'))
*op=*ip+32;
else if((*ip<='9')&&(*ip>='0'))
*op=105-(*ip);
else if((*ip<='z')&&(*ip>='a'))
*op=*ip-32;
else
*op=*ip;
}
*op='\0';
}