逆序单词输出

逆序单词输出

网上大神写的

// “Hello world I”
// “I world Hello ”
void wordReversePrint(char s[])
{
    int i,len = strlen(s);
    char *start = s;
    s+=len-1;
    for(i=len-1; i>=0; i--)
    {
        if(*s==' ')//碰见空格就输出空格后的剩余字符
        {
            printf("%s ",s+1);
            *s='\0';
        }
        if(i==0)//字符串前可能没有空格
        {
            printf("%s",s);
        }
        s-=1;//从后往前遍历
    }
}

自己写的

#include<stdio.h>

int main()
{
	char arr[79];
	gets(arr);
	for (int i = strlen(arr); i >= 0; i--)
	{
		if (arr[i] == ' ')
		{
			printf("%s",arr+i+1);
			printf(" ");
			arr[i] = '\0';
		}
		if (i == 0)
		{
			printf("%s", arr);
	}
	}
	return 0;
}

总结

感觉不适合在两个数组上来回替换,长度什么的都不方便,最好还是在一个数组里进行更改输出。

posted @ 2022-03-19 17:34  孟夏十二  阅读(78)  评论(1)    收藏  举报