当前位置:网站首页>PAT 乙等 1009 C语言

PAT 乙等 1009 C语言

2022-06-23 04:11:00 章鱼bro

1009. 说反话 (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。

输出格式:每个测试用例的输出占一行,输出倒序后的句子。

输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello


思路:将输入的句子从后往前寻找空格,此处利用strtchr函数,此函数是从右向左寻找某个字符,找到返回该字符的指针,找不到返回NULL。找到空格后将空格赋值为‘\0’,相当于将最后一个单词和前面的句子隔开。再将指针加一,指向被截出来的单词的第一个字母,再输出从该指针位置开始的字符串,即输出的是最后一个单词。

一、起始变量

1.字符串array。

2.接受空格地址的指针


二、运算


1.接受字符串

2.从字符串结尾开始向前寻找空格

3.找到空格将此位置‘\0’,并将指针加一

4.输出从指针位置开的字符串



三、代码

#include "stdio.h"
#include "string.h"
int main()
{
	char array[81];
	gets(array);//1.接受字符串
	char * p;
	int i;
	for(i = strlen(array) - 1; i >= 0; i--,i = strlen(array) - 1)
	{	

		p = strrchr(array,' ');//2.从字符串结尾开始向前寻找空格,若找不到空格则返回NULL 
		if(!p)
		{
			printf("%s",array);
			break;
		}//如果p为空,说明该字符串已经遍历完 
		*p = '\0';//3.找到空格将此位置‘\0’,并将指针加一
		p++;
		printf("%s ",p);//4.输出从指针位置开的字符串
	}
	return 0;
}


原网站

版权声明
本文为[章鱼bro]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_15161183/article/details/71080744