您的位置:首页 > 其它

实验十—指针2

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

#include<stdio.h>
#define N 100
void getx(char *c1);
void getr(char *c2);
void main()
{
char a
;
puts("输入一个字符串:");
gets(a);  /*从输入得到一个字符串*/
getx(a);   /*同上*/
}
void getx(char *c1) /*将该字符串中的后x个字符复制到另一个字符串y中,输出字符串y*/
{
int i,x,k=0;
int j=0;
char temp
; /*定义一个临时数组用来储存要拷贝的字符*/
puts("输入正整数x:");
scanf("%d",&x);
while(*(c1+j)!='\0') /*把字符串拷贝给*c1;'\0'表示结束,不然字符串没有结束符不对*/
{
j++;
}
for(i=j-x;i<j;i++) /*循环x次取字符串的后x个字符*/
{
temp[k]=*(c1+i);  /*将后x个字符储存到临时数组中*/
k++;
}
temp[k]='\0';
getr(temp);   /*将临时数组中的字符串代入函数getr(char *c2)中实现倒置*/
puts("新的字符串是:");
puts(temp);
}

void getr(char *c2) /*对y串的内容前后倒置后存入数组z中并输出*/
{
int j,k,i=0;
char temp
;
while(*(c2+i)!='\0') /*把函数getr(char *c1)中得到的临时数组中的变量赋给*c2*/
{
i++;
}
for(j=0;j<i;j++)
{
temp[i-j-1]=*(c2+j);/*把*c2中的字符串赋给新的临时数组*/
}
for(k=0;k<i;k++) /*实现倒置*/
{
*(c2+k)=temp[k];
}
}


*1.对如何倒置还不是很熟;

2.在复杂的转换过程中可以定义一个新的临时数组;

3.临时数组在两个函数之间不能通用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: