#include<iostream>
#include<cstring>
#include<list>
#include<string>
using namespace std;
int main()
{
list<char> list1 ;
char str[50000] ;
while(cin.getline(str,50000))
{
int n = strlen(str) ;
for(int i=n-1;i>=0;i--)
{
char c = str[i] ;
char c1 = str[i-1] ;
if(c==' ')
printf(" ") ;
else
list1.push_back(c) ;
if(c!=' '&&c1==' ')
{
list<char>::iterator it=list1.begin();
list1.reverse() ;
for(it=list1.begin();it!=list1.end();it++)
printf("%c",*it) ;
list1.clear() ;
}
}
list1.reverse() ;
list<char>::iterator it=list1.begin();
for(it=list1.begin();it!=list1.end();it++)
printf("%c",*it) ;
printf("\n") ;
list1.clear() ;
}
return 0 ;
}
c++如何巧妙变为c,青高收捷达
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 浪客 2022-07-02 23:57关注
void reverse(char *s, int n) { char *p = s + n - 1, c; while (s <= p) { c = *s; *s++ = *p; *p-- = c; } } int main() { char list[100]; char str[50000]; char ch; int n = 0, k = 0; while ((ch = getchar()) != '\n') { str[n++] = ch; } str[n] = '\0'; for (int i = n - 1; i >= 0; i--) { char c = str[i]; char c1 = str[i - 1]; if (c == ' ') printf(" "); else list[k++] = c; if (c != ' ' && c1 == ' ') { list[k] = '\0'; reverse(list, k); printf("%s", list); k = 0; } } list[k] = '\0'; reverse(list, k); printf("%s", list); printf("\n"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
- ¥15 误删注册表文件致win10无法开启
- ¥15 请问在阿里云服务器中怎么利用数据库制作网站
- ¥60 ESP32怎么烧录自启动程序
- ¥50 html2canvas超出滚动条不显示
- ¥15 java业务性能问题求解(sql,业务设计相关)
- ¥15 52810 尾椎c三个a 写蓝牙地址
- ¥15 elmos524.33 eeprom的读写问题
- ¥15 用ADS设计一款的射频功率放大器
- ¥15 怎么求交点连线的理论解?