鱼C论坛

 找回密码
 立即注册
查看: 1846|回复: 13

单词的位置

[复制链接]
发表于 2021-9-26 15:00:46 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
每个单词都有*或-隔开,怎么找出单词的位置。

比如有个字符串 Easy**--so*book--**--Car
so的位置是2 ,用代码怎么找,给点思路呗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-26 15:28:48 | 显示全部楼层
不会 c,提供个思路
这在 python 很简单
把 - 和 * 全部替换成 空格
然后 以空格分离
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-26 15:42:21 From FishC Mobile | 显示全部楼层
你等一下,我刚写完手残给删了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-26 16:18:41 | 显示全部楼层
按照楼上的意思写了一个,用 C++ 写的,^_^
#include <iostream>
#include <string>
#include <regex>
#include <vector>
#include <boost/algorithm/string.hpp>

int main() {
    std::string s = "Easy**--so*book--**--Car";
    s = std::regex_replace(s, std::regex(R"((\*+)|(-+))"), " ");
    s = std::regex_replace(s, std::regex(R"( +)"), " ");
    std::vector<std::string> v;
    boost::split(v, s, boost::is_any_of(" "));
    for(size_t i = 0; i < v.size(); ++i) {
        if(v[i] == "so") std::cout << i + 1 << std::endl;
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-26 16:21:27 | 显示全部楼层
本帖最后由 jhq999 于 2021-9-26 16:29 编辑
bool flag=0;
char ch[字符串长度+1],tmp=0;
int len=0,st=0;
if((ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z'))
{
if(!flag)
{
st=i;
flag=1;
}
}
else
{
if(flag)
{
//ed=i;
tmp=ch[i]
ch[i]='\0';
//len=ed-st;
printf("%s\n",ch+st);
ch[i]=tmp;
flag=0;
}
}
只是个思路,没有上编译器
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-26 16:22:21 | 显示全部楼层
#include "stdio.h"
int main()
{
        char s[100]={"seuh**woakj-kj*kjhs-----se"};
        int a=0,b=0,c=0,count=0;
        for(a=0;s[a]!='\0';a++)
        {
                if(s[a]!='*'&&s[a]!='-')
                {
                        b=1;
                        printf("%c",s[a]);

                }
                else if(b==1)
                {
                        c=-2;
                }
                if(b==1&&c==-2)
                {
                        count++;
                        printf("%d\n",count);
                        b=0;
                        c=0;
                }
        }
        printf("%d",count+1);
}
这段代码在电脑上没问题在手机上有错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-26 16:28:19 | 显示全部楼层
人造人 发表于 2021-9-26 16:18
按照楼上的意思写了一个,用 C++ 写的,^_^

大佬,这两个冒号在一起是啥意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-26 16:31:24 | 显示全部楼层
人造人 发表于 2021-9-26 16:18
按照楼上的意思写了一个,用 C++ 写的,^_^

看样子你得从头开始教他了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-26 16:31:31 | 显示全部楼层
bszs 发表于 2021-9-26 16:28
大佬,这两个冒号在一起是啥意思

?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-26 16:38:04 | 显示全部楼层
人造人 发表于 2021-9-26 16:18
按照楼上的意思写了一个,用 C++ 写的,^_^

抱歉,我看错了,原来是c++
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-26 17:24:42 | 显示全部楼层
本帖最后由 jackz007 于 2021-9-26 17:27 编辑
#include <stdio.h>

int main(void)
{
        char str[] = "Easy**--so*book--**--Car" , word[64]     ;
        int i , j , k                                          ;
        for(i = j = k = 0 ; str[i] ; i ++) {
                if(str[i] != '*' && str[i] != '-') {
                        word[j ++] = str[i]                    ;
                } else {
                        if(j) {
                                word[j] = '\0'                 ;
                                k ++                           ;
                                printf("%d : %s\n" , k , word) ;
                                j = 0                          ;
                        }
                }
        }
        if(j) {
                word[j] = '\0'                                 ;
                printf("%d : %s\n" , k + 1 , word)             ;
        }
}
        编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c

D:\0002.Exercise\C>x
1 : Easy
2 : so
3 : book
4 : Car

D:\0002.Exercise\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-27 20:41:59 | 显示全部楼层
人造人 发表于 2021-9-26 16:18
按照楼上的意思写了一个,用 C++ 写的,^_^

为什么那么多回复都没提醒的,我还以为我的贴子凉了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-27 20:43:31 | 显示全部楼层
qq1151985918 发表于 2021-9-26 15:28
不会 c,提供个思路
这在 python 很简单
把 - 和 * 全部替换成 空格

有意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-27 21:00:08 | 显示全部楼层
a327904410 发表于 2021-9-27 20:41
为什么那么多回复都没提醒的,我还以为我的贴子凉了。

可能 bug 了吧,我有时候也这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 12:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表