读入一行文本,包含若干个单词(以空格键个,或者文本结束),
将其中以A开头的单词与以N结尾的单词,
用头尾交换的办法予以置换.
要求实现函数
void exchang(const char *pIn,char *pOut)
输入:pIn输入的文本
输出:pOut输出文本
示例:
输入:AM I OLDER THAN YOU
输出:THAN I OLDER AM YOU
#include<stdio.h>
#include<math.h>
#include<string.h>
/*
**读入一行文本,包含若干个单词(以空格键个,或者文本结束),
将其中以A开头的单词与以N结尾的单词,
用头尾交换的办法予以置换.
要求实现函数
void exchang(const char *pIn,char *pOut)
输入:pIn输入的文本
输出:pOut输出文本
示例:
输入:AM I OLDER THAN YOU
输出:THAN I OLDER AM YOU
*/
void exchang(const char *pIn,char *pOut)
{
char b[101][101];//定义一个二维数组,用来存放所有单词
char t[101];
int j=0,m=0,i,n,x,y;
for(i=0;*(pIn+i)!='\0';i++)//将文本中的单词都提取出来'
{
if(*(pIn+i)==' ')
{
j++;
m=0;
}else{
b[j][m]=*(pIn+i);
m++;
}
}
n=j+1;//单词的个数
//测试(输出每个单词)测试成功
/* for(i=0;i<n;i++)
printf("%s\n",b[i]);*/
for(j=0;j<n;j++)
{
for(i=0;b[j][i]!='\0';i++)
{
if(b[j][0]=='A')
x=j;
if(b[j][i]=='N'&&b[j][i+1]=='\0')
y=j;
}
}
//printf("x=%d,y=%d\n",x,y);
strcpy(t,b[x]);
strcpy(b[x],b[y]);
strcpy(b[y],t);
m=0;
for(j=0;j<n;j++)//将单词赋值到pOut中
{
for(i=0;b[j][i]!='\0';i++)
{
*(pOut+m)=b[j][i];
m++;
}
if(b[j][i]=='\0'&&j!=n-1)
{
*(pOut+m)=' ';
m++;
}
}
*(pOut+m)='\0';
}
int main()
{
char pIn[100], pOut[100];
printf("please a string:\n");
gets(pIn);
exchang(pIn,pOut);
printf("%s\n",pIn);
printf("%s\n",pOut);
return 0;
}