描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
数据范围:输入的字符串长度满足 1≤n≤1000
注意本题有多组输入
输入描述:
输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。
输出描述:
得到逆序的句子
示例1
输入:
I am a boy
输出:
boy a am I
#import
intmain(intargc,constchar* argv[]) {
@autoreleasepool {
charstr[1000];
scanf("%[^\n]", str);
NSString*strC = [NSStringstringWithFormat:@"%s", str];
NSArray*array = [strCcomponentsSeparatedByString:@" "];
for(inti = (int)array.count-1; i >=0; i--) {
NSString*s = [arrayobjectAtIndex:i];
printf("%s",s.UTF8String);
}
}
return0;
}
scanf(“%[^\n]“, str);是什么意思?
^表示“非”,[^\n]表示读入换行符就结束读入。这是scanf的正则用法,一般情况下scanf是不能接收空格符,已接收到空格就结束读入,所以不能像gets()等函数一样接受一行字符串,所以用[^\n]就可以读取一行,直到碰到‘\n’才结束读入。
读取一个字符集,以\n作为结束标志
scanf("%[^\n]",str);
网友评论