社区
C语言
帖子详情
高人,救命啊,我快疯了
baolima
2004-08-06 08:01:25
我刚学C,准备过计算机等级考试,发现C好难啊,有个问题不知道该怎么做,请教各位。
题目是:
如果一段字符串,如果里面含有字母o,则字母o前后内容倒置,没有o则原样输出
比如输入 wo ai china,则结果应该是: ai china,ow
没有的话,就原样输出~
多谢了
...全文
220
13
打赏
收藏
高人,救命啊,我快疯了
我刚学C,准备过计算机等级考试,发现C好难啊,有个问题不知道该怎么做,请教各位。 题目是: 如果一段字符串,如果里面含有字母o,则字母o前后内容倒置,没有o则原样输出 比如输入 wo ai china,则结果应该是: ai china,ow 没有的话,就原样输出~ 多谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
查找,交换,还难吗?
gccr
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服务的形式注册部署到服务器...
电脑奇才勾结银行“内鬼”
疯
狂套现
我市21岁的电脑天才吴明(化名),16岁就创办了自己的电脑公司,并通过自学考试获得南京一所知名高校的大专学历。然而公司经营不善,去年倒闭并欠下 50多万元的债务。为还债,他竟然用额度仅为3000元的信用卡透支了...
逃出这斗罗大地
题记一个人一只脚踩入了泥潭中,他弯着腰,双手死死的拽着腿,费尽心力的终于拔了出来,跌坐在旁边,看着自己满腿的泥泞,露出灿烂的笑容。最近老是出现这个画面,它给我的寓意便是,...
摘星-月亮篇
月亮双子座工作指标 适合反应
快
的工作,而且必须是可以让你发挥你的传播力事务。 月亮双子座爱情心态 天生不是长久情人,经常会为了要体验另一份爱情而移情别恋。甜言蜜语是你最佳的武器,但是 真情就欠奉献咯。...
关于股市的消息
某日某站某博水民甲:我要买股票赚大钱,放消息啊方消息啊,我要更多消息水民乙:...水民乙:博主
高人
啊,应该有内线消息,赶紧告诉我啊! 某日某乡某府平民甲:我要买six合彩赚大钱...
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章