社区
C语言
帖子详情
高人,救命啊,我快疯了
baolima
2004-08-06 08:01:25
我刚学C,准备过计算机等级考试,发现C好难啊,有个问题不知道该怎么做,请教各位。
题目是:
如果一段字符串,如果里面含有字母o,则字母o前后内容倒置,没有o则原样输出
比如输入 wo ai china,则结果应该是: ai china,ow
没有的话,就原样输出~
多谢了
...全文
227
13
打赏
收藏
高人,救命啊,我快疯了
我刚学C,准备过计算机等级考试,发现C好难啊,有个问题不知道该怎么做,请教各位。 题目是: 如果一段字符串,如果里面含有字母o,则字母o前后内容倒置,没有o则原样输出 比如输入 wo ai china,则结果应该是: ai china,ow 没有的话,就原样输出~ 多谢了
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yjf7888
2004-08-07
打赏
举报
回复
修改后!
int lof(char *str, int size)
{
char ts[MAX];
char *pt = ts;
for (int i = size - 1; i != 0 && str[i] != 'o'; i--);
if (str[i] == 'o')
str[i] = '\0';
else
return 0;
strcpy(ts, str);
strcpy(str, &str[i+1]);
str[i] = 'o';
strcpy(&str[i+1], ts);
return 1;
}
--------------------------------------------------------
我想应该在str[i]='o'前面加一句:i = size-1-i;
palm99
2004-08-07
打赏
举报
回复
查找,交换,还难吗?
老码不识途
2004-08-07
打赏
举报
回复
最后一个O就从后往前找不就行了?
ppdog
2004-08-07
打赏
举报
回复
楼上的算法还要考虑多个O得情况,这时候要最后一个o
BroncoSpeedCoursing
2004-08-06
打赏
举报
回复
应该不难:
思路就是
第一步:判断是否找到字母O。
第二步:如果没有,则原样输出。
如果有,则整个字符串以字符O为中心分成左右两部分,
先输出右半部分再输出左半部分。
universe01
2004-08-06
打赏
举报
回复
修改后!
int lof(char *str, int size)
{
char ts[MAX];
char *pt = ts;
for (int i = size - 1; i != 0 && str[i] != 'o'; i--);
if (str[i] == 'o')
str[i] = '\0';
else
return 0;
strcpy(ts, str);
strcpy(str, &str[i+1]);
str[i] = 'o';
strcpy(&str[i+1], ts);
return 1;
}
//我没有调试过!你自己实验一下!
universe01
2004-08-06
打赏
举报
回复
void lof(char *str, int size)
{
char ts[MAX];
char *pt = ts;
for (int i = size - 1; i != 0 && str[i] != 'o'; i--);
if (str[i] == 'o')
str[i] = '\0';
strcpy(ts, str);
strcpy(str, &str[i+1]);
str[i] = 'o';
strcpy(&str[i+1], ts);
}
//我没有调试过!你自己实验一下!
Dong
2004-08-06
打赏
举报
回复
呵呵。上面的最后的pos=emp要去掉。
//。。。。。。。。。。。。。。。。
没有看到你后面的一句话,我考虑的是最前面的。
你要获得最后个要这样的
if(pos)
{
char* emp=pos;
while((emp=strchr(pos+1,'o'))!=NULL)
{
pos=emp;
}
}
这一句插入到char *pos = strchr(t,'o');的面
Dong
2004-08-06
打赏
举报
回复
没有看到你后面的一句话,我考虑的是最前面的。
你要获得最后个要这样的
if(pos)
{
char* emp=pos;
while((emp=strchr(pos+1,'o'))!=NULL)
{
pos=emp;
}
pos=emp;
}
这一句插入到char *pos = strchr(t,'o');的面
Dong
2004-08-06
打赏
举报
回复
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void fout(char* ch)
{
int len=strlen(ch);
char t[100];
strcpy(t,ch);
t[len]='\0';
char *pos = strchr(t,'o');
if(!pos)
printf("%s",ch);
else
{
char *c=t + len - 1;
while(c!=t)
{
if(*c==' ')
{
printf("%s\n",c+1);
*c='\0';
c--;
}
else
{
if(c==pos)
{
printf("%s\n",t);
break;
}
else
{
c--;
}
}
}
}
}
void main(void)
{
char* arr="wo ai china";
char* a="sdfdf werw wo dfasdfa dfa";
fout(arr);
printf("the next one...\n");
fout(a);
}
楼主。。。。我很久没有获得专家分了...........
baolima
2004-08-06
打赏
举报
回复
不好意思,说错了,如果有多个o的话,制考虑最后面的
baolima
2004-08-06
打赏
举报
回复
里面只会有一个o或者没有o
antijpn
2004-08-06
打赏
举报
回复
这个题目很奇怪嘛!如果有两个o怎么办?3个呢?
疯
了,是常态。
<一> 用D7写了一个调用C#的WebService客户端程序... 程序在我的本本上(WINXP)测试时,跑的很欢畅。 <二> 昨天晚上,把这个WebService客户端以NT服务的形式注册部署到服务器...
互联网摸鱼日报(2024-09-18)
疯
狂讨好中国的侃爷,背后有
高人
4431亿,今年港交所最大IPO来了大型体育场馆的商业空间开发,这里有五个可对照的消费原则走出15年来最长连跌行情,伯克希尔怎么了?41亿!立讯精密收购的Leoni AG是什么来头?ChatGPT...
电脑奇才勾结银行“内鬼”
疯
狂套现
我市21岁的电脑天才吴明(化名),16岁就创办了自己的电脑公司,并通过自学考试获得南京一所知名高校的大专学历。然而公司经营不善,去年倒闭并欠下 50多万元的债务。为还债,他竟然用额度仅为3000元的信用卡透支了...
逃出这斗罗大地
题记一个人一只脚踩入了泥潭中,他弯着腰,双手死死的拽着腿,费尽心力的终于拔了出来,跌坐在旁边,看着自己满腿的泥泞,露出灿烂的笑容。最近老是出现这个画面,它给我的寓意便是,...
活出全新的自己……
二00七年五月,方智出版社发行了我的第一本著作《遇见未知的自己》,一晃眼,两年就过去了。这两年间,发生了很多改变,最大的改变就是:我在家庭主妇身分之外,又多了一个新的身分认同:畅销作家。 至目前...
C语言
70,021
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章