实验10 指针2

1、输入一个字符串和一个正整数x,将该字符串中的后x个字符复制到另一个字符串y中,输出字符串y;再对y串的内容前后倒置后存入数组z中并输出。
     要求:用指针访问数组元素、用函数getx(char *c1)实现复制、用函数getr(char *c2)实现倒置。
     运行示例
     Enter a string: abcABCD
     Enter an integer: 4
     The new string is: ABCD
     The invert string is: DCBA

#include<stdio.h>
#include<string.h>
void getx(char *c1);
void getr(char *c2);
int x;
int main(void)
{
    char s[80];
    printf("enter a string:");
    gets(s);
    printf("enter an integer:");
    scanf("%d",&x);
    printf("the new string is:");
    getx(s);//由这个函数可以指出指针c1已经指向了s;
    printf("the invert string is:");
    getr(s);//同理;
    return 0;
}
void getx(char *c1)
{
    char z[80];//再次定义一个数组用来存放复制后的;
    int i,y;
    y=strlen(c1);//y是数组s的长度。
    for(i=0;i<x;i++)
    {
        z[i]=*(c1+y-x+i);//因为是从第x个字符开始。数组的长度减去x再加上i的值就是ci向后那么多个数组。
    }
    z[x]='\0';
    printf("%s\n",z);
}
void getr(char *c2)
{
    char m[80];//用来存放倒叙输出后的值
    int i,a;
    a=strlen(c2);//a数组s的长度
    for(i=0;i<x;i++)
    {
        m[i]=*(c2+a-1-i);//x-1-i是从倒数的开始
    }
    m[x]='\0';
    printf("%s\n",m);
}

2、为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则是:小写字母z变换成为a,其它字符变换成为该字符ASCII码顺序后1位的字符,比如o变换为p。
     要求输入一个字符串(少于80个字符),输出相应的密文;要求定义和调用函数encrypt(s),该函数将字符串s变换为密文。

 

posted @ 2013-11-21 16:14  wuyanlong  阅读(159)  评论(0编辑  收藏  举报