倒序的另一种形式





#include<stdio.h>
#include<string.h>


#define N 100


int main()
{
int i = 0;
int j = 0;
int m = 0;
int n = 0;                               //定义四个变量并初始化为0


char a[N];
char b[N];
char c[N];                              //定义三个字符数组


printf("please input a string:\n");
gets(a);                                //从终端获取字符串


n = strlen(a);                          //计算字符串的长度


for(i = n - 1;i >= 0; i--) //将a[n - 1]赋值给b[0],依次循环,得到其逆序数组b
{
b[j] = a[i];
j++;
}
j = 0;

for(i = 0;i < n; i++)                  //控制循环的次数为n
{
if(b[i] !=' ')                     //如果b[i]不为空格,将其赋值给c[j]
{
c[j] = b[i];
j++;
}
if(b[i] == ' '|| i == n -1)       //如果b[i]为空格或者b[j] = n - 1,进行循环
{
for(m = j -1; m >= 0; m--)    //通过循环将单词逆序打印出来
{
printf("%c",c[m]);
}
j = 0;
}


if(b[i] == ' ')                  //如果b[i]为空格,打印出空格
{
printf(" ");
}
}
printf(" \n");


return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42195913/article/details/80427211