20131111实验 10 指针2

1,输入一个字符串和一个正整数x,将该字符串中的后x个字符复制到另一个字符串y中,输出字符串y;再对y串的内容前后倒置后存入数组z中并输出。
     要求:用指针访问数组元素、用函数getx(char *c1)实现复制、用函数getr(char *c2)实现倒置。
     

#include<stdio.h>

void getx(char *c1);           //调用函数实现复制
void getr(char *c2);           //点用函数实现倒置
void main()
{ 
     char a[99];                        //定义一个小于99的数组
     puts("Enter a string:");           //输出提示
     gets(a);    
     getx(a);
}
      void getx(char *c1)            //调用函数getx(char *c1)实现复制
{
     int n,k=0;
     int j=0;
     char temp[99];
     puts("Enter an integer:");
     scanf("%d",&n);
     while(*(c1+j)!='')
     {
      j++;
     }
     for(int i=j-n;i<j;i++)
      { 
          temp[k]=*(c1+i);k++;}
          temp[k]='';
          puts("The new string is:");
          puts(temp);
          getr(temp);
          puts("The invert string is:");
          puts(temp);
      }
        void getr (char *c2)         //调用函数getr (char *c2)实现倒置
      {
         int i=0;
         char temp[99];
         while(*(c2+i)!='')
         {
             i++;
         }
         for (int j=0;j<i;j++)
         {
             temp[i-j-1]=*(c2+j);
         }
         for(int k=0;k<i;k++)
         {
             *(c2+k)=temp[k];
         }
} 

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

#include<stdio.h>
#include<string.h>                    //定义字符串
#define MAXLINE 80                    //不超过80字符
void encrypt(char*);
int main(void)
{
    char line[MAXLINE];              //字符数组line用于存放输入的字符串
    printf("输入电码明文:");
    gets_s(line);
    encrypt(line);                     //调用加密指针encrypt
    printf("%s%s
","转换后的密码为:",line);
    return 0;
}
void encrypt(char*s)                 
{
    for(;*s!='';s++)
        if(*s=='z')
            *s='a';
        else *s=*s+1;
}
原文地址:https://www.cnblogs.com/baojunchi/p/3417452.html