//输入 wang chen 输入 chen wang
/******************************************************************************/
#include <stdio.h>
#include<stdlib.h>
char input[256],output[256][256];
int i,j,cnt ,cnt1;
char ch;
int main(void)
{
i=0;
cnt=0;
cnt1=0;
//从键盘输入一句话,存入一位数组
while(1)
{
ch=getchar();
if((ch==0x0a)||(ch==0x0d)) break;//遇回车或换行时终止输入
input[cnt]=ch;
cnt++;
}
//将一位数组转存为二维数组
j=0;
if(i=0;i<cnt;i++)
{
output[cnt1][j]=input[i];
if(input[1]==0x20) //如果是空格
{
output[cnt1][j]="\0";
j=-1;
cnt1++;
}
j++
}
//按照一维逆序二维顺序的方式输出
for(i=cnt1;i>=0;i--)
printf("%s",output[i]);
return;
}
/******************************************************************************/
方法二(最好)
编程思想:用指针操作字符串。 建立一个一位数组input[],从屏幕上读取数据,然后建立二维数组output[][],再利用指针操作函数strcpy(output[i],input)语句将一位数组存入二维数组的第二维(第一维为序号),
当用户出入三个*时,倒序打印。
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char input[256],output[256][256];
int i=0;
char ch;
while(1)
{
scanf("%s",input); //遇到回车 空格 tab 都表示终止输入 而getchar()只有当Enter时,才表示输入结束
//若输入三个*,则停止用户输入
if(strcmp("***",input)==0) break; //原型:extern int strcmp(const char *s1,const char * s2);
//即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
//特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数
else
{
strcpy(output[i],input); // 指针操作两个字符串首地址,复制字符串
i++;
}
}
//倒序输出
for(;i>=0;i--)
printf("%s",output[i]);
printf("\n");
return 0;
}
printf("\n");
return;
}