小编Nob*_*lis的帖子

使用python将单词移至行尾

我正在解析HTML,并且得到了一个Array字符串,我试图将其清理并稍后放入pdf中。在此级别上,我想将所有单词从头开始移动@X到行尾,以便最终使所有行@X对齐。

Hello World @Xabs
Hello World                                   @Xz
Hello World  @Xss
Hello World         @Xssa
Hello World       @Xqq
Hello World             @Xsasas
Run Code Online (Sandbox Code Playgroud)

我想作为输出:

Hello World                                        @Xabs
Hello World                                        @Xz
Hello World                                        @Xss
Hello World                                        @Xssa
Hello World                                        @Xqq
Hello World                                        @Xsaxs
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

到目前为止,我有:

Hello World @Xabs
Hello World                                   @Xz
Hello World  @Xss
Hello World         @Xssa
Hello World       @Xqq
Hello World             @Xsasas
Run Code Online (Sandbox Code Playgroud)

python string

3
推荐指数
1
解决办法
98
查看次数

存储动态分配的结构中的字符数组在哪里?

可能重复:
C阵列实例化 - 堆栈还是堆分配?

当动态分配包含char指针的struct时,实际的char指针会发生什么?它存放在哪里?

一旦结构被释放,char指针是否随之释放?

例如,考虑以下结构:

struct mix
{
    int a;
    float b;
    char *s;
};

typedef struct mix mix;
Run Code Online (Sandbox Code Playgroud)

然后是以下代码为它分配内存:

int main()
{
    mix *ptr = (mix*)malloc(sizeof(mix));

    ptr->a = 3;
    ptr->b = 4.5f;
    ptr->s = "Hi, there, I'm just a really long string.";

    free(ptr);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

*s分配在堆栈上,然后用中解脱出来一起*ptr?我可以想象它确实是在堆栈上分配的,因为它没有以任何方式动态分配(除非malloc具有一些我不知道的功能).而且我认为"超出范围" *s将会解放*ptr.或者我完全错了?:)

非常感谢!

c struct dynamic-memory-allocation

2
推荐指数
1
解决办法
1256
查看次数

从函数返回值时使用c_str()的差异

如果我有以下两个功能

std::string foo1()
{
    std::string temp;
    ...
    return temp;
}
Run Code Online (Sandbox Code Playgroud)

const char* foo2()
{
    std::string temp;
    ...
    return temp.c_str();
}
Run Code Online (Sandbox Code Playgroud)

以及一个以const char*作为输入的函数;

void bar(const char* input) { ... }
Run Code Online (Sandbox Code Playgroud)

哪一个更安全:

bar(foo1().c_str());
Run Code Online (Sandbox Code Playgroud)

要么

bar(foo2());
Run Code Online (Sandbox Code Playgroud)

如果我想做的就是将一个字符串作为输入传递给bar,然后不关心任何一个foo函数的返回值它真的会重要吗?

c++ string

2
推荐指数
2
解决办法
971
查看次数

如何检查IPC :: open3执行的命令是否挂起?

我正在使用以下脚本来捕获STDIN,STDOUTSTDERR从作为参数传递的命令中捕获.

#!/usr/bin/perl

use strict;
use warnings;

use IPC::Open3;

local(*CMD_IN, *CMD_OUT, *CMD_ERR);

my $pid = open3(*CMD_IN, *CMD_OUT, *CMD_ERR, $ARGV[0]); 

close(CMD_IN);

my @stdout_output = <CMD_OUT>;
my @stderr_output = <CMD_ERR>; 

close(CMD_OUT);
close(CMD_ERR);

waitpid ($pid, 0); # reap the exit code

print "OUT:\n", @stdout_output;
print "ERR:\n", @stderr_output;
Run Code Online (Sandbox Code Playgroud)

这一切都很好,除了我不知道如何监视传递的命令是否挂起.你能建议一个方法吗?

我从"Programming Perl"借用了这个片段.

perl ipc

2
推荐指数
1
解决办法
3516
查看次数

ocaml命令行找不到"topfind"

我已经安装opam,运行opam init,运行opam switch 4.06.0它创建了一个4.06.0内部目录~/.opam,运行"EVAL opam confing env"其中出口$OCAML_TOPLEVEL_PATH~/.opam/4.06.0/lib/toplevel除其他事项外,当启动ocaml我得到了可怕的:

$ ocaml
        OCaml version 4.06.0

Cannot find file topfind.
Unknown directive `camlp4o'.
# 
Run Code Online (Sandbox Code Playgroud)

我已经看过这个了,这一点都没有解决我的问题而且我的智慧结束了(第一次设置OCaml).这是我的~/.ocamlinit:

(* Added by OPAM. *)
let () =
  try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")
  with Not_found -> ()
;;
#use "topfind"
#camlp4o
#thread
#require "core.top"
#require "core.syntax"
Run Code Online (Sandbox Code Playgroud)

编辑:看起来我没有安装core,安装core解决了,但现在我得到的一系列导入诊断:

Exception:
Invalid_argument
 "The ocamltoplevel.cma library from …
Run Code Online (Sandbox Code Playgroud)

ocaml opam ocaml-toplevel

2
推荐指数
1
解决办法
525
查看次数

标签 统计

string ×2

c ×1

c++ ×1

dynamic-memory-allocation ×1

ipc ×1

ocaml ×1

ocaml-toplevel ×1

opam ×1

perl ×1

python ×1

struct ×1